Advanced PHP Programming (Developer's Library) (英語) ペーパーバック – 2003/12/3
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
Over the past three years PHP has evolved from being a niche language used to add dynamic functionality to small sites to a powerful tool making strong inroads into large-scale, business-critical Web systems.
The rapid maturation of PHP has created a skeptical population of users from more traditional "enterprise" languages who question the readiness and ability of PHP to scale, as well as a large population of PHP developers without formal computer science backgrounds who have learned through the hands-on experimentation while developing small and midsize applications in PHP.
While there are many books on learning PHP and developing small applications with it, there is a serious lack of information on "scaling" PHP for large-scale, business-critical systems. Schlossnagle's Advanced PHP Programming fills that void, demonstrating that PHP is ready for enterprise Web applications by showing the reader how to develop PHP-based applications for maximum performance, stability, and extensibility.
George Schlossnagle is a principal at OmniTI Computer Consulting, a Maryland-based tech company that specializes in high-volume Web and email systems. Before joining OmniTI, he led technical operations at several high-profile community Web sites, where he developed experience managing PHP in very large enterprise environments. He is a frequent contributor to the PHP community and his work can be found in the PHP core, as well as in the PEAR and PECL extension repositories.
Before entering the information technology field, George trained to be a mathematician and served a two-year stint as a teacher in the Peace Corps. His experience has taught him to value an interdisciplinary approach to problem solving that favors root-cause analysis of problems over simply addressing symptoms.
Amazon.com で最も参考になったカスタマーレビュー (beta)
My first PHP book was Glasshaus' "Dreamweaver MX: PHP Web Development" (had to start somewhere). I then bought Sams' "PHP & MySQL web development". That was a big step forward.
I then got the SitePoint PHP Anthology volumes. I liked its use of OOP for the various solutions, but they're just that. A lot of cook book style solutions. I learned some good things from looking at all the solutions, but I wanted a more direct approach teaching me how to program PHP on a professional level, rather than just learn how to implement professional solutions.
A few weeks ago I got the book Advanced PHP Programming. Finally I have a book that seems to really have what I was looking for. This teaches not only how OOP works in PHP, but it also shows in general how OO techniques apply to different situations (design patterns). A lot of other topics in the book are a little over my head right now, but it is good to know it's there for when I need it.
While reading the many examples in the previously mentioned PHP books, I kept asking myself "is this really the best way to handle this?". Not with this one. I somehow know that this book can teach me all I ever wanted to know about programming PHP on a professional level and not teach me any 'bad practices' along the way.
This is definately not the first book I should have bought on PHP, but it seems this may well be the last book I will be needing for a long time.
After 2 years or so, I missed that feeling. I'd check out new PHP books and flip through every chapter saying, "Yeah yeah yeah...". I realized I had become an expert.
I was honestly impressed looking at the table of contents of this book. This is NOT your usual PHP book! That's obvious right away. So I ordered it. And it just arrived yesterday.
I was up all night reading it, and again today. This is the most amazing PHP book for experienced PHP programmers I've ever seen. (Wait - this is the ONLY book for experienced PHP programmers I've ever seen!)
The author really knows his stuff, and uses best-practices, throughout. Really well thought-out code with a lot to learn from.
The fact that it's all based on the new PHP5 style makes it even better! A great way to get to know the new object approach to PHP5: to see it in real-world examples, so that after a few hours with this book it's second-nature.
For the first time in three years, I feel wonderfully over-my-head with a LOT to learn here in this one amazing book. Thanks George!
He advocates and provides guidance for adhering to best practices, regarding design patterns, scalability, caching, unit testing, profiling & tuning etc. The last 1/6 of the book is about C language PHP extension. Excellent "Further reading" suggestions are provided at the end of each chapter.
Out of a high-volume PHP site developer, since 1999, I would expect creative examples. If your site provides Fibonacci sequences and readability scores web services, you'll find this book highly useful. Though on page 1, the author PROMISES NO* "foo-bar" examples, he provides plenty (on pages: 19, 53, 56, 68, 102, 158, 166, 227, 230, 255, 268, 274, 325, 373, 405, 466, 483, 484, 563). Since a reader devotes plenty of time to contemplating foo-bar examples, I came to realize why they bother me so much ... they're unimaginative (i.e. mentally lazy), regarding pragmatic applications for the technology.
I found myself constantly marking comma's in the text - to ease the readability and follow what was being said. If the author doesn't know where to put comma's, the editors should! There's no bold text - to illustrate lessons within the code. As far as I can remember, there's no offer of complete code (e.g. from a website), either.
This is a good, author with generally readable writing style and a wealth of experience to convey. I wouldn't dissuade anyone from buying this book; there's a tremendous amount to be learned and gained from this ... probably the most advanced PHP text, available. I'm just a bit disappointed, because, though it's very good, it could have been world class. I would buy future books from this author; I hope that they get even better!
The performance section for example (which is one of my favourites) just scratches the surface on how you can use APD to find bottlenecks in your code. George provides you with some common examples, but the real work is still yours, you won't get a step-by-step guide.
Another interesting point of this book is that it is not to read from start to the end. You will surely find sections you are already familiar with (Smarty being a prime example), or sections too advanced for you (ex. distributed environments). And George also takes the liberty to use PHP 5 OO code before introducing the new PHP 5 features, and using XML-RPC before the chapter on RPC calls.
I find it very valuable to have a lengthy introduction to good coding practices at the begining, since most of the code in the book builds heavily on having a consistent coding style. What I miss from the begining though is the introduction on where can people find details if they are stuck. There are interesting PHP.net services (lxr.php.net for example), which are quite valuable if you are trying to find something in the PHP source, to get an idea of how things work.
George having been heavily involved in the APC and APD development knows a lot about PHP and Zend internals. The last section provides you with a current and correct explanation on how you can extend PHP. None of the printed books on the market, or any online tutorial or manual can beat this section currently.
This book doesn't teach PHP, it teaches efficiency, maintainability and some really good programming notions. The fact that it uses PHP as a vehicle is just the icing on the cake. The source code used is manytimes from real open source projects, a nice effort from the author.
Oh, and I would also like to mention the author's style of writing: he comes across as a very open-minded individual who routinely recognises his own errors and isn't in any way superior to the rest of us not-so-enlightned programmers.
On a final note, let me just say I wish my copy of this book would magically turn into a spell-checked hardcover edition :)