In Zend We Trust

imageI Want to share some impressions about some of the Zend products ltd. Very happy that they are now not only The PHP Company, but also producers of related products. I used to like and possibly greatandpart I sat on Zend Studio 5.5, as she successfully coped with all that she had, but the problem it solved for the most part focused on one developer, despite the "friendly staff". In principle, nothing but codefolding and syntax highlighting was not required, was very useful even all sorts of patterns such as foreach and information about functions / arguments, etc. obtained from the DocBlock, as well as comfortable. SVN was used as backup and the IDE does not as not interacted, but recently switched to Zend Studion 7.0, which every day more and more happy, Yes there are a bunch of cons, but sometimes hangs due to project analysis, unusual hotkeys, etc. but it's all configurable.

imagejust want to note if you don't need a comprehensive solution to all problems — use the editor you like, if you want to apply any new methods of development — feel free to put Zend Studio 7.0 and from time to time in her experiment, so that after some time it will bear fruit.

One of the downsides — not very convenient to work with a small resolution, not a widescreen monitor, but this problem is solved by maximizing the active pane (Ctrl + M). The next problem you may face is pizzardi, at first it may be unclear what Vizard for what you want, but having dealt with them you will be able to speed up the development process, even for the same purpose very well serve the same templates.

Now what everyone has wanted to say — this is the real integration of the IDE and the server out of the box (php + web server + database). No need to edit configs to something to fix in the settings, of course third-party extensions will need to connect manually, but most of the basic operations it is convenient to do through a web interface. So Jae along with Zend Server is the Zend Controller which is sometimes you can play.

To integrate Zend Server and Zend Studio, you will need to start the Server, then the Studio and it from the pop-up window to agree to the integration and to enter the password (this is the case if you have Zend Server is local). Then you can immediately start to more constructive debugging, tracing and profiling. For example, a pair of images of the app in Zend Framework (by the way, the relevant term shows the MVC which displays accurately model / view / controllers)

image


In this illustration it is evident that training (bootstraping) of the application takes 46% of the time work, and it is mostly the parsing of the configuration files and the creation of suitable objects that time and again the same... there is a real lack of hash of the whole matter, however in this example we used almost all of the resources available by default, them there pieces 11. "Useful actions" — read the dispatch takes only 27% of the time that just looks disgusting, i.e. 3/4 of the execution time is spent on the same monotonous in most cases the action.

The following image shows the same report, only from a different tab in the form of a pie chart:

image


From here we once see that the new bootloader though very convenient, but is the first victim in the shooting. In the debug perspective there is a panel with the console, which will also help you find the conflict place, in my case, the loader attempts to load resources and helpers kind of custom paths, not /library/Zend plus reports on the appeals to the file number elapsed time of the processed strings, blank lines and total lines of code in a file, see for yourself — I promise it will be interesting. Profiled was a URL. To try any other features yet, but the future must be something more, perhaps a closer look at working with Zend Debuger.
PS
The first picture with Zend Controller — it serves the number of queries per second while accessing the same URL as when profiling.

If anyone has installed it on one host PHP with simultaneous support for xDebug and the Zend Debugger and have experienced any problems, and decided to them — tell us about it in the comments if you find time.

You will need to try to wrap Zend_Application standard cache objects

To connect Zend_Cache


the the the the the the
Profile URL: example.com
Query: debug_host=192.168.1.195%2C127.0.0.1&debug_fastfile=1
Path: C:/Program Files/Zend/Apache2/htdocs/example.com/htdocs/index.php
Total Request Time: 839.07
Number of Files: 136
Profile Date: Wed Oct 21 00:45:51 MSD 2009

/**
* index.php TO connect to a standard cache Zend_Application
* Autoloader, constants, and the start of the sessions is above
* and is not explained here
*
*/

$application = new Zend_Application(
APPLICATION_ENV
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR .'application.ini'
);

$application- > bootstrap()->run();


* This source code was highlighted with Source Code Highlighter.


After connecting Zend_Cache


the the the the the the
Profile URL: example.com
Query: debug_host=192.168.1.195%2C127.0.0.1&debug_fastfile=1
Path: C:/Program Files/Zend/Apache2/htdocs/emample.com/htdocs/index.php
Total Request Time: 636.28
Number of Files: 89
Profile Date: Tue Jul 21 00:33:55 MSD 2009

/**
* index.php when the standard cache to Zend_Application
* Autoloader, constants, and the start of the sessions is above
* and is not explained here
*
*/

$frontendOptions = array(
'cached_entity' => new Zend_Application(
APPLICATION_ENV
APPLICATION_PATH . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR .'application.ini'
)
);

$backendOptions = array(
'cache_dir' => APPLICATION_CACHE
'hashed_directory_level' => 2
);

$cache = Zend_Cache::factory('Class' 'File', $frontendOptions, $backendOptions);

$cache->bootstrap();
$cache->run();

/**
* IMPORTANT: When using resumenanny methods i.e.:
* $cache->bootstrap()->run();
*
* Come full P. as:
* Debug Error:
* C:\Program Files\Zend\ZendServer\share\ZendFramework\library\Zend\Application\Bootstrap\Bootstrap.php
* line 69 - Call to a member function getDefaultModule() on a non-object
*/


* This source code was highlighted with Source Code Highlighter.

Conclusions:


Using Zend Studio, together with Zend Server has streamlined the app for an hour (from the beginning of writing — the creation of screenshots, typing, formatting, couple of calls on his mobile ) average for the quarter: lead time is decreased by 24%, the number of connected files — 34%. Of course, there may be some subtle highlights or potential problems, but this problem is covered by the use of unit testing.

PPS:


A detailed examination revealed that all of the caches, tightly that, in principle, was suspected, but in the same way, you can still optimize the process of preparation of applications, extending the Zend_Application class and adding the necessary logic.

And now the correct conclusion — the night is for sleeping.
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

Automatically create Liquibase migrations for PostgreSQL

Vkontakte sync with address book for iPhone. How it was done

What part of the archived web