"Extending PHP" is easier said than done. PHP has
evolved to a full-fledged tool consisting of a few megabytes
of source code, and to hack a system like this quite a few
things have to be learned and considered. When structuring
this chapter, we finally decided on the "learn by doing"
approach. This is not the most scientific and professional
approach, but the method that's the most fun and gives the
best end results. In the following sections, you'll learn
quickly how to get the most basic extensions to work almost
instantly. After that, you'll learn about Zend's advanced API
functionality. The alternative would have been to try to
impart the functionality, design, tips, tricks, etc. as a
whole, all at once, thus giving a complete look at the big
picture before doing anything practical. Although this is the
"better" method, as no dirty hacks have to be made, it can be
very frustrating as well as energy- and time-consuming, which
is why we've decided on the direct approach.
Note that even though this chapter tries to impart as
much knowledge as possible about the inner workings of PHP,
it's impossible to really give a complete guide to extending
PHP that works 100% of the time in all cases. PHP is such a
huge and complex package that its inner workings can only be
understood if you make yourself familiar with it by
practicing, so we encourage you to work with the source.
The name
Zend refers to the language engine, PHP's core.
The term
PHP refers to the complete system as it appears
from the outside. This might sound a bit confusing at
first, but it's not that complicated (see 圖形 24-1). To
implement a Web script interpreter, you need three
parts:
The
interpreter part analyzes the input code,
translates it, and executes it.
The
functionality part implements the
functionality of the language (its functions,
etc.).
The
interface part talks to the Web server,
etc.
The following sections discuss where PHP can be
extended and how it's done.