Develop an efficient WEB system small project through PHP - simple and direct PHP
Generally for a website with less than 20 functional pages, We can write it using a very simple framework structure. On this scale, I suggest using a more direct process-oriented coding method. The reason is very simple. There is no need to make N many class files. As a result, there is only one new in the controller. Of course, projects with frequently changing requirements are excluded.
At this level, the advantages of PHP are obvious: rapid development, clear at a glance. The shortcomings are also well hidden.
Medium-sized project to develop efficient WEB system with PHP - Beautifully structured OO PHP
For a medium-sized project, I recommend using a well-designed framework, this The framework can be based on the MVC model and encapsulate many underlying operations. Of course, there must be a good and preferably transparent cache mechanism, so that the OO mechanism we add to adapt to changes can run faster and better.
At this level. PHP's shortcomings began to emerge, such as incomplete OO support (this PHP5 has been greatly improved) and only single-threaded mode. In addition, some peripheral tools are beginning to lack support. For example, PHP does not have good refactoring tools and there is no good unit testing tool integrated into the IDE. The advantages are of course the original rapid development and wide range of available open source resources.
PHP development of large-scale projects for efficient WEB systems - expanded and optimized PHP
The large-scale projects here simply refer to distributed projects, that is, your program It needs to be deployed on N servers. At this level, PHP does lack a lot of support compared to j2ee. I have discussed in detail with shadow on 735 some of the problems that need to be solved if PHP is to be applied in large systems. Of course, these problems are not only problems with the PHP language, but also include problems with peripheral development:
1 PHP Page code sharing, after the PHP source code is loaded into the memory once, it is retained in it - this can be done with the optimizers of APC and Zend.
2 Data object sharing between PHP pages. A data object, such as an array, can be shared between a.php and b.php. This can now be done using serialization, but there will be file io. This Blocks can be processed using shared memory or memcached.
3 PHP database connection pool, because in the case of multiple front ends, PHP cannot control the connection to the database, so it is necessary to create a connection pool in front of the database, something similar to sqlrelay. In addition, data caching is also very important. There is a tip for high-pressure development, that is, don’t touch the database if you can.
4 PHP front-end cache system. A transparent and controllable cache mechanism to ensure that the website's pages query the database the least number of times. There are many implementations of this, but I haven't found a particularly good one.
5 After a PHP application successfully solves these problems, it will have no problem coping with slightly greater pressure.
At this level, it is important to integrate PHP, java, C++, python and the like to make it an efficient system. We can use memcached for distributed memory management, Lucene for full-text retrieval, and ejb containers to place some business logic components. PHP serves as the glue between the front end and the system to quickly and flexibly glue these together to implement PHP development. Efficient WEB system.