PHP5 Power Programming

It's a good description of new PHP5. Shows its object-oriented capabilities, but it's also about databases, web programming, performance etc.

In the preface the authors write that the book is for PHP programmers moving to PHP5 and that short tutorial may be enogh for people who know other high-level languages. I don't have much PHP experience, but the book was clear for me without more reading. It's definitelly NOT for people who start programming.

The book starts with a short intorduction to PHP5 features. It's more a list than description, but it gives the general knowledge what's the whole thing about.

Second chapter is about PHP basics. People who know PHP may want to miss it. Others should read it. If you know C, C++, probably also Java or any other high-level language it should be enough to see differences and similarities between PHP and languages you know.

The next chapter describes PHP5 OO model. It's about classes, constructors and destructors, polymorphism, exceptions and other things. Differences between PHP and different popular programming languages are shown, so you won't miss them.

The fifth chapter shows more about OO programming in PHP. Overloading and iterators are discussed. There's also an interesting part about design patterns. Four of them are discussed and it's shown (strategy, singleton, factory and observer) which one is best for certain situations.

At this point OO description finishes. Chapter 5 shows how to write a web application using PHP. Of couse, embedding HTML and forms are discusses, but this book discusses security aspect in more details than other books about PHP I've seen. Volnurabilities and methods to handle them are shown clearly. This chapter also discusses cookies and sessions and script architecture (one script or many).

Next chapter shows databases usage with PHP. MySQL, SQLite and PEAR DB interfaces are discussed in details. For me, PostgreSQL description is missing.

Chapter 7 is about errors. What's described? Types of errors (inlcuding PEAR errors) are discussed in great detail. There's even a passage about portability problems.

Next chapter describes XML with PHP. I must say it's enough to start using XML in your PHP programs even when you don't know about XML. It's really very valuable.

Chapter 9 is less useful than the previous one for me. It describes common extensions. It's a nice reference, but very detailed and hard if you want to simply read it and not dig for specific info.

In chapter 10 you'll finally learn what's PEAR. The term is often used in the book, but not explained before this chapter (or I've just missed it). The chapter is about installation and configuration of PEAR installer in different configurations (UNIX/Linux and Windows).

Next chapter dicusses popular PEAR packages: templates, authentication, form handling. It's rather useful.

Chapter 12 tells you all you want to know about building and releasing your PEAR package. It covers also coding standards. Very useful chapter if you plan to write your own package.

Next chapter shows the differences between PHP 4 and PHP 5, so it's for people who want to port their apps.

Then there comes the chapter I like very much - performance. Design, queries caches, benchmarking and profiling is discusses.

Then comes another very valuable part of the book - about PHP extension and writing them in C. Lots of useful info.

Last chapter describes PHP shell scripting.

Then there's appendix with PEAR and PECL package index - not very useful, as it's rather an index that should be on a CD or online and takes nearly 100 pages, so it's hard to find one interesting package.

There's also decription of Zend Studio and code for 90-day trial version.

At the end of book there's nice index.

The language used is rather clear, all terms are explained when needed, but the number of abbreviations is overwhelming at times.

Examples are short and to the point. Not yet another online store. That's a big plus.

Overall, it's a good book and should be very useful for both programmers moving their apps from PHP4 to PHP5 and those who program in different languages and want to try PHP and all it new features.