
Great Book on the Zend Framework.The only quip I have with this book is the title "Practical Web 2.0 Applications with PHP" it should be called "Practical Zend Framework Applications using PHP"
There is not one example in the book that doesn't use the Zend Framework. That being said the Zend Framework is a great framework - by far the best web framework I've seen. I'm PhD student in Computer Science at UCLA whose dissertation research involves the web. I've used a lot of web applications and frameworks. Symfony, Drupal, Joomla, Ruby on Rails, etc.
Most of these applications and frameworks just suck - that is, it is more work using them than not using them and many severely limit what one can ultimately do.
I like Ruby on Rails but I love the Zend Framework. There are two big differences between the Zend Framework and Ruby on Rails: 1) they both promote MVC style programming but Ror forces you to use it everywhere and the Zend Framework allows you to mix MVC with simply using their framework as a library wherever you want. For example, I am building a social network but want to mix that with a related wiki. I can use MVC for all the social network code and use and existing MediaWiki (which is not MVC based). All I need to do is rewrite some of the mediaWiki code to hand over user authentication to my controllers.
2) it's Php based ... there is much, much more existing Php code to cannibalize for applications than Ruby code
The book itself basically takes you through setting up user profiles, a blog, an image gallery, prototype (javascript) and Google maps using the Zend Framework. The code is very professional and complex at times so a beginning user may have to read a chapter 2-3 times to fully understand it. Still the only way to really learn to write "professional" code is to see it and understand why it was written as it was.
There are some issues I have with the book. In places where something could reasonably be done in multiple ways the book only shows one without any explanation why that way was chosen. For example, in the installing Zend chapter the book tells you to edit the httpd.conf file to set your paths. Most people who use a commercial hosting company don't have access to edit httpd.conf or restart the server. There are ways to reset the path within the Zend bootstrap (which I did) but if I didn't know how to do that I would not have been able to get the examples to work without setting up a server locally on my machine.
Also the bootstrap is left in the index.php file when Zend recommends using the index.php to call the bootstrap.php file from a non-public web directory.
The Zend Framework is only a few months old and this is by far the best web framework out there. There is only one other (decent) book on the framework. This book is about the Zend Framework and only marginally about "Web 2.0" (you use Google maps). The book that should have been titled "Practical Zend Framework Applications using PHP" will teach you how to use the best web framework out there. If the next book shows one how to really use web services, ajax and present web services using the Zend Framework then it can be called "Web 2.0" not this one.
PHP Web 2.0 using Zend and SmartyFirst of all. What is Web 2.0? Everyone has a definition. The important point is how does THIS BOOK define it. The author of this book defines Web 2.0 as sites that use: standard compliant HTML/CSS, use AJAX, share data using web services, and incorporate social networking tools. This book seeks to show the reader how to use the four components in conjunction with PHP.
The cover of the book states "Develop a complete PHP web application from start to finish." This is exactly what the book does. As the chapters progress you are shown how to create a blog that also includes an image gallery. Additionally, Google maps integration is covered. While, the author is not necessarily advocating that you create blog software from scratch, the blog is perhaps the quintessential Web 2.0 application. This allows the book to highlight the four main design criteria of Web 2.0.
This book makes extensive use of the Smarty and Zend frameworks. The Zend framework is used to achieve the Web 2.0 goals. In many ways this book could be considered a guide to using the Zend framework. MySQL is also used.
The book contains many code examples and demonstrates many techniques that can be reused in any web 2.0 project.
Outstanding Demonstration of Php(Zend) and AJAXAfter thoroughly going through every chapter in this book (somtimes several times to understand exactly how everything was linking together) I have an incredibly improved understanding on how you might go about building a more complex web application, and an advanced understanding of the MVC pattern.
Every section is extremely well laid out, and the code is explained in detail (in most cases.) The only times where an explanation is lacking are when an approach has been previously explained in the book. Use that memory!
I think if you really dig into and understand this code, you may find yourself well ahead of a lot of your peers.
I even had a problem with one piece of code, and the author was kind enough to reply to my e-mail and help me troubleshoot the problem. (It was my fault.)
Highly suggest this book!
Great... once you get goingI won't repeat what the others have said about how great this book is other than to say I agree with them. In addition, as what follows will prove, I am relatively new to PHP. What follows below is answers to two hurdles that I had troubles with 'getting going' - the first having to do with php configuration, and the second concerning Smarty. I simply hope, if you are new like me, the following will save you some head scratching.
First - php settings... While the author does go to extraordinary length to try to spell things out for the reader, one gotcha centers around your 'include_path' settings. The author failed to mention that his default include_path includes a '../include' entry. Without that, any attempt to run the application will report an error with the Zend Loader. A work-around is to simply use ini_set to add '../include' to the index.php file.
Second - Smarty. Installation of Smarty for this project is demonstrated for a unix environment. Being ignorant of that environment, I missed the fact that the author was copying 'Smarty/libs/smarty.class.php' and the rest to 'Smarty/smarty.class.php', etc... In that I already had Smarty installed in php5/include/Smarty/libs, I missed the elimination of the libs folder. So, if you are going to buy this book AND already have Smarty installed, you can do what I did... Go to line 11 in Templater.php to change the require_once to point to where your installation is. In my case, 'Smarty/libs/smarty.class.php'.
Excellent, but why implement your own Db Table patternThis is an excellent book and I have enjoyed reading it over the past day. For someone trying to piece together the various technologies like Auth, ACL, Config, Logging and Session it's a great resource for the first several chapters, going into detail about the configuration and setup of this simple environment without any of that padding and guff that a lot of other authors include. The book doesn't treat you like an idiot, which I certainly appreciated.
The only issue I would raise is that the Author has used his own classes for database Table access instead of employing the frameworks standard Zend_Db_Table and Zend_Db_Table_Row bases. This means that anyone wanting to adhere closely to the Zend Framework (for corporate reasons) will have to reverse engineer the approaches used. An odd choice for a book almost entirely based on the Zend Framework.
Highly Recommended!This book is easily the most useful and well-written PHP book I've ever read. It runs you through the complete development of a web application using PHP5, Zend Framework, Smarty, Ajax (via Prototype and Scriptaculous). It also includes a useful section on Deployment and Maintenance, which includes error handling/logging/reporting, database backup and restoration, and application deployment (dev, staging, production).
The book has a heavy focus on the Zend Framework, and does a better job of explaining (and using) the intricacies of it then any other book or online resources I've come across.
I would highly recommend this book to anyone looking to use PHP5 with the Zend Framework.
Good book after slow startI have been working with PHP for several years now yet the first part of this book had me pulling my hair out (whats left of it). Setting up the environment is tricky and it probably would of helped me if I had a stronger background in OO programming. With that said, this is a good book and I would recommend it to any intermediate level PHP developer.
Very practical web development book (making extensive use of Zend Framework)I found this book very useful if you want to develop a solid, feature-rich web application. It provides a review of all technologies needed to piece together your own solution, using always components/frameworks that are well entrenched in the development community. Not only you will get an understanding of the back-end architecture(PHP, Zend_Framework, Smarty, MySQL) but you will also get to learn how to tie in your front-end components (Ajax, JavaScript, CSS, JSON) in a seamless application.
I see this book as a very good manual for a CS class in LAMP web development.
Todo lo que necesita un emprendedor webEste libro, es excelente para personas las cuales hemos trabajado mucho con aplicaciones para internet, pero que estamos interesado en el web 2.0, ajax y el mundo del MVC.
Hasta el momento no tengo quejas sobre este libro, y creo que no la tendré, aunque tengo que mencionar, que deberian explicar que el libro hace uso de Zend Framework y que sin el seria dificil aplicar Web 2.0 basandonos en el libro.
CodeIgniter es mi framework para desarrollo, pero ahora que el libro me introduce hacia Zend Framework creo que tengo mas posibilidades, si eres alguien que desea aprender Zend Framework, introducirte en el mundo del web 2.0, creo que este es el libro perfecto.
OutstandingThis book is outstanding. Not only does it guide you through on building online applications but it also drags you through the Zend PHP framework. I would recommend this book to anyone is going down the path of becoming a fantastic PHP developer. It is a good resource.
