tailieunhanh - Expert PHP 5 Tools phần 7

nói một trên máy tính công việc của mình và một ở nhà. Trong nhiều trường hợp, Subversion có thể nhập các thay đổi tự động mà không đòi hỏi đầu vào từ các nhà phát triển. Tuy nhiên, các nhà phát triển vẫn nên kiểm tra những thay đổi để đảm bảo không có xung đột bất ngờ của mình như là mã nhưng không cam kết. | Chapter 6 Use of design patterns Model-View-Controller architecture Data Access Objects DAO Active Record JavaScript support via jQuery Internationalization and localization Support for caching logging error handling theming authentication authorization form and input validation Console applications Web widgets Web services For more information on the project and to download a copy of its latest release version you should visit their site here http Zend Framework application All that theory is great as a foundation from which to start exploring and experimenting with the creation of actual framework-based applications. But what really serves to illustrate the usefulness of a framework is to build a small application that leverages a representative collection of the features provided by the framework. We can t really do this for more than one framework for the simple reason that this chapter would become too long. I would like to preemptively offer my apologies to all proponents of other PHP frameworks. However since ZF has certainly become one of the most widely adopted frameworks we will be using it for our project. The point of this exercise is to give you a whirlwind tour of some of the more commonly used components of ZF. We will see that we can achieve a lot of functionality without having to write a whole lot of code. If at some point it seems like there is a lot of hand-waving going on there are two reasons for that. First we are leveraging a framework that is performing a lot of chores for us behind the scenes. We don t necessarily need or want to know all the details of what is going on but without that knowledge it may seem a bit like magic. The second reason is that I am indeed skipping over many of the details of the various modules we will be using. There is not enough room to do an exhaustive treatment of the modules. Besides that s not really the point of this chapter. However for those who want to learn more about any of the