Introduction PHP by ginmoo


Introduction PHP

More Info
									What Does PHP Do?
PHP does anything you want, except sit on its head and spin. Actually, with a little
on-the-fly image manipulation and Dynamic HTML, it could probably do that, too.

According to the PHP manual, "The goal of the language is to allow web developers
to write dynamically generated pages quickly."

Here are some common uses of PHP, all of which are part of what you'll learn in this

      Perform system functions: create, open, read from, write to, and close files
       on your system; execute system commands; create directories; and modify
      Gather data from forms: save the data to a file, send data via e-mail, and
       return manipulated data to the user.
      Access databases and generate content on-the-fly, or create a web interface
       for adding, deleting, and modifying elements within your database.
      Set cookies and access cookie variables.
      Start sessions and use session variables and objects.
      Restrict access to sections of your website.
      Create images on-the-fly.
      Encrypt data.

These are just basic, everyday uses. PHP also includes support for integrating with
Java servlets, XML, and a myriad of other higher-level functions. The possibilities
literally are endless.

Why PHP 5?
It's natural that languages continue to develop, and PHP 5 has done just that—its
changes represent the next step in the growth and development of the language.
There was nothing fundamentally wrong with PHP 4, and in fact the vast majority of
this book can be used on servers running PHP 4 and not PHP 5. The changes in PHP
5 revolve around high-level aspects of the language, namely the object model.

If you are coming to PHP from another programming languages, especially a highly
structured, specifically object-oriented language, the crossover to a flexible,
procedural language that just happens to handle object-oriented programming can
be frustrating. But, the ease of use and robustness is one of the reasons new
programmers are drawn to PHP in the first place—the learning curve isn't steep, and
it gets the job done.
However, this also presents a marketing problem for PHP users working in an
enterprise setting. Some Powers That Be might not think PHP is suitable for
enterprise-level application development, because it is not a time-tested, structured,
object-oriented programming language such as C or even Java. There might not be
the time or opportunity for a developer to convince her managers otherwise by
showing examples of PHP and C or Java performing the same tasks—if you even
can, with the same level of structure, security, reusability, and exception-handling.

From these and other problems came the development path for PHP 5, the main
purposes of which were to improve the object model, instill a sense of programming
discipline, and specifically design a version of PHP that meets the needs of object-
oriented developers and allows them to interface with Java, .NET, and other
enterprise-level application frameworks.

But beginning users—likely the primary audience of this book—will not face objects,
classes, .NET, or XML-integration their first day on the job. These users simply want
a fast, flexible language they can use to create basic, dynamic websites, and PHP 5
still meets that need. Although PHP 5 contains an enhanced internal scripting engine
and a vastly improved object-oriented framework, the PHP Group and Zend
Technologies recognize and appreciate the roots of PHP and the core group of users
who have made it so pervasive. As with PHP 4, PHP 5 does not force you to use the
elements of the language you don't need.

Overview of Changes in PHP 5

Because this book does not provide lessons in programming PHP from an object-
oriented point of view, this section will not go into detail and show examples of the
object model changes in PHP 5. For that, I highly recommend Harry Fuecks' article
"PHP5: Coming Soon to a Webserver Near You," at This article contains an outstanding
dissection of the object-related changes in PHP 5, and how to implement them.

A few other major features are part of PHP 5, including the appearance of SQLite, an
embedded database engine. This is not at all meant to replace a robust database
like MySQL, PostgreSQL, or Oracle. Instead, this simple, speedy little database can
store database files in both files and memory and thus would be good for something
like storing session data and application configuration information—simple INSERTs
and SELECTs. Although this book uses MySQL as its database of choice, you can
learn more about SQLite .

Another change is in the XML arena. PHP 4 used several third-party libraries to
control XML parsing and rendering, thus there was no single stable and reliable XML
rendering and parsing mechanism. PHP 5 provides one XML library, Gnome's libxml,
as the foundation for the DOM extension. This library is very fast and full-featured,
and thus a solid foundation on which to rebuild the XML functionality in PHP. You will
learn more about working with XML in PHP 5.
Backwards Compatibility with PHP 4

The changelog and PHP manual always indicate when a new implementation will
cause problems in previous versions, so at least read the changelog thoroughly if not
the manual entries for your favorite functions. However, the vast majority of PHP 5
focuses on additional functionality rather than completely replacing existing
elements. If you have learned PHP using PHP 4, you might find that none of your
scripts require a rewrite.

Requiring a rewrite and rewriting scripts for the sake of utilizing new functionality
are completely different—you might want to rewrite to take advantage of new
object-oriented functionality, but you might not have to. If your code is primarily
procedural (as with the scripts in this book), there's a better than 95% chance that
no rewrites will be necessary.

Similarly, if you cannot install PHP on your own machine for development or product
purposes "Installing PHP," and must use PHP 4, do not fret. Anything taught in this
book that doesn't work in PHP 4 is indicated as such.

Is PHP Right for You?
Only you can decide if PHP should be your language of choice, whether you're
developing sites for personal or commercial use on a small or large scale. I can only
tell you that in the commercial realm, I've worked with all the popular server-side
scripting languages—Active Server Pages (ASP), ColdFusion, JavaServer Pages (JSP),
Perl, and PHP—on numerous platforms and various web servers, with varying
degrees of success. PHP is the right choice for me: it's flexible, fast, and simple in its
requirements, yet powerful in its output.

Before deciding whether to use PHP in a large-scale or commercial environment,
consider your answers to these questions:

      Can you say with absolute certainty that you will always use the same web
       server hardware and software? If not, look for something cross-platform that
       is available for all types of web servers: PHP.
      Will you always have the exact same development team comprised entirely of
       ASP (or Java Server Pages or ColdFusion) developers? Or will you use
       whoever is available, thus necessitating a language that is easy to learn and
       syntactically similar to C and Perl? If you have reason to believe that your ASP
       or JSP or ColdFusion developers might drop off the face of the earth, don't
       use those tools—use PHP.
      Are memory and server load an issue? If so, don't use bloated third-party
       software that leaks precious memory—use PHP.

Here's the bottom line: PHP is simple, so just try it! If you like it, continue using it.
It's Open Source, so help improve it. Join a mailing list and help others. If you don't
like it, you're only out the money for this book, and the software can be uninstalled
without rendering your machine completely inoperable.

To top