RSS Feed
Июн 8

Zend Server CE установка и настройка для Windows (Windows Zend Server Community Edition)

Posted on Понедельник, июня 8, 2009 in php, ZendFramework, Новости

Установка Zend Server CE

Рассмотрим процедуру установки и настройки сборки Zend Server CE для Windows, напомню я уже делал обзор Zend Server.

И так, мы хотим установить себе Zend Server CE (далее по тексту ZS).

Первое что нам нужно сделать, это скачать последную версию с сайта:

http://www.zend.com/products/server/downloads-all


Там выбираем пакет для Windows, на момент написания это был файл:
zs1

Скачиваем…

Теперь перейдем к настройке и установке

  1. Запускаем скачанный файл
  2. Установка доступна в 3-х вариантах: Typical, Full and Custom
    Custom
    - вы сможете сами выбрать что поставить, а что нет =) (ВЫБИРАЕМ ЭТОТ ПУНКТ)
  3. Ставим галочки напротив нужных вещей
    zs2zs3
  4. Перейдете в диалог Destination Location где нужно выбрать КУДА ставить сервер, я советую выбирать путь такой c:\zs\ (описание будет данно для этого пути)
    zs4
  5. Порт apache выбираем 80
  6. В итоге будет поставлено:
    - PHP 5.2.9
     -- Common Extensions
     -- Additional Extensions
     -- Zend Optimizer+
     -- Zend Debugger
     -- Zend Data Cache
    - Zend Framework 1.8.2
     -- Zend Framework Base
    - phpMyAdmin
    - MySQL Server
    - Apache Web Server on port 80
  7. Жмем Install. Будет загруженно дополнительно phpmyadmin (почему то 2.11.9.3 – я обычно потом ставлю ветку 3.x) и mysql сервер.

Настройка Zend Server CE

Заходим в панель управления:
http://localhost/ZendServer/

zs5

Вводим свой пароль, входим. Там можете поиграть с GUI =)

Но мы пойдем дальше…

Первое что я меняю, так это делаю vhosts т.к. все таки мы не один сайт разрабатываем, а много, для этого делаем изменения:

1. У меня все сайты лежать в папке c:/www

2. Создаем файл c:/www/vhosts.conf в нем пишем наши сайты:

NameVirtualHost *:80

<VirtualHost 127.0.0.1>
ServerAdmin mail@mail.com
DocumentRoot «C:\www\phpmyadmin»
ServerName 127.0.0.1
ServerAlias www.phpmyadmin
</VirtualHost>

<VirtualHost 127.0.0.2>
ServerAdmin mail@mail.com
DocumentRoot «C:\www\site1″
ServerName 127.0.0.2
ServerAlias www.site1
</VirtualHost>

и т.д., меняем айпи и папку где лежит сайт.

3. Меняем конфиг апача c:/zs/Apache2/conf/httpd.conf

Добавим строку в конце:

Include c:/www/vhosts.conf

Строки:

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

переделываем на

<Directory />
#    Options FollowSymLinks
#    AllowOverride None
#    Order deny,allow
#    Deny from all
</Directory>

4. Запустим апач, если все запустилось, то при открытии http://127.0.0.1 у нас будет phpMyAdmin (предварительно туда его желательно залить -) )

Собственно это все.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Уникальных посетителей темы: 1 718

Июн 5

Zend Server 4.0.3 & Zend Studio 7.0 Early Access Release

Posted on Пятница, июня 5, 2009 in php, ZendFramework, Новости

studio-7-0-ea-imageВышли обновления для таких вещей как Zend Server до версии 4.0.3.

Основное это переход на PHP 5.3 (RC2).

Скачать Zend Server можно по ссылке:
http://www.zend.com/en/products/server/downloads-ea

Теперь более глобальное обновление Zend Studio до версии 7.0 !!!!

  • Zend Studio базируется на последней версии Eclipse (Galileo).
  • Поддержка PHP 5.3 (Namespace)
  • Улучшение редактора кода
  • Поддержка интеграции Zend Server

Теперь Zend Studio еще больше интегриновать с Zend Framework:

  • Легкое создание любых элементов Zend Framework
  • Настраиваемый дефолтный проект
  • Обновленные примеры работы
  • Интеграция Zend Tool

Скачать Zend Studio 7.0 и потестить можете по ссылке:
http://www.zend.com/en/products/studio/studio-7-early-access

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Уникальных посетителей темы: 30

мая 13

Обновления Zend Framework 1.8.1 и Doctrine 1.1.1

Posted on Среда, мая 13, 2009 in Doctrine, ZendFramework, Новости

Обновляемся  на новые версии фреймворка и doctrine.

Zend Framework качаем тут:
http://framework.zend.com/download/latest

обзор прошлой версии смотрим тут
http://devzone.zend.com/article/4524-Zend-Framework-1.8.0-Released

В данной версии исправленно более 68 ошибок в коде,  ошибки в документации и «Быстром старте». Так же сделанны изменения (без перевода)

  • Zend_Loader::registerAutoload() now proxies to Zend_Loader_Autoloader, and marks the instance as a fallback autoloader. This will ensure equivalent functionality, and reduces the number of deprecation notices emitted to one.
  • Many bugfixes and improvements to Zend_Application.
  • Addition of module generation capabilities to Zend_Tool
  • Addition of strong object typing capabilities to Zend_Amf
  • Many more manual translations!

Полный список тут: http://short.ie/zf1-8-1-issues

Doctrine

Качаем как обычно с http://www.doctrine-project.org/download

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Уникальных посетителей темы: 19

Мар 24

ZendFramework 1.7.7

Posted on Вторник, марта 24, 2009 in php, ZendFramework, Новости

Как ни странно, но не в новостях на самом zend.com, ни в их рассылке (видемо сейчас вся команда _упорно_ работает над Zend Server) но вышла версия ZendFramework 1.7.7 !!!

Вот список изменений:

  • Zend_Amf with support for AMF0 and AMF3 protocols
  • Dojo Toolkit 1.2.1
  • Support for dijit editor available in the Dojo Toolkit
  • ZendX_JQuery in extras library (see extras folder in the full package
  • Metadata API in Zend_Cache
  • Google book search API in Zend_Gdata
  • Preliminary support for GData Protocol v2 in Zend_Gdata
  • Support for skip data processing in Zend_Search_Lucene
  • Support for Open Office XML documents in Zend_Search_Lucene indexer
  • Performance enhancements in Zend_Loader, Zend_Controller, and server components
  • Zend_Mail_Storage_Writable_Maildir enhancements for mail delivery
  • Zend_Tool in incubator (see incubator folder in the full package)
  • Zend_Text_Table for formatting table using characters
  • Zend_ProgressBar
  • Zend_Config_Writer
  • ZendX_Console_Unix_Process in the extras library
  • Zend_Db_Table_Select support for Zend_Paginator
  • Global parameters for routes
  • Using Chain-Routes for Hostname-Routes via Zend_Config
  • I18N improvements:
    - Application wide locale for all classes
    - Data retrieving methods are now static
    - Additional cache handling methods in all I18N classes
    - Zend_Translate API simplified

    • File transfer enhancements
      - Support for file elements in subforms
      - Support for multifile elements
      - Support for MAX_FILES_SIZE in form
      - Support for breaking validation chain
      - Support for translation of failure ,messages
      - New IsCompressed, IsImage, ExcludeMimeType, ExcludeExtension validators
      - Support for FileInfo extension in MimeType validator
    • Zend_Db_Table_Select adapater for Zend_Paginator
    • Support for custom adapters in Zend_Paginator
    • More flexible handling of complex types in Zend_Soap

    Полный список изменений и фиксов доступен по адресу:

    http://framework.zend.com/issues/secure/IssueNavigator.jspa?requestId=10970

    Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

    Уникальных посетителей темы: 27

    Мар 8

    Doctrine Profiler

    Posted on Воскресенье, марта 8, 2009 in Doctrine, ZendFramework, Новости

    Иногда полезно видеть какие запросы строит Doctrine и сколько времени они выполняются. Описание профайлера в оригинале тут: http://www.doctrine-project.org/documentation/manual/1_1/en/component-overview#profiler

    Ниже мой пример.

    1. В Initializer.php

    public function initDb()
       {
    ...
            $profiler = new Doctrine_Connection_Profiler ();
            Doctrine_Manager::getInstance()->setListener($profiler);
            Zend_Registry::set('dbProfiler', $profiler);
    ...

    2. В bootstrap.php

    ...
    //В конце файла
    $profiler=Zend_Registry::get('dbProfiler');
    echo "<div class=box style=\"font-family: Courier New; font-size: 11px\">";
    $time = 0;
    foreach ( $profiler as $event ) {
    $time += $event -> getElapsedSecs ();
    echo "<b><font color=red>".$event ->getName () . "</font></b> [" . sprintf ("%f", $event -> getElapsedSecs ()) . "]<br>\n";
    echo $event ->getQuery () . "<br>\n";
    $params = $event ->getParams ();
    if( ! empty ( $params )) {
        var_dump ( $params );
        echo "<br>";
        }
    }
    echo "<br><b>Total time : " . $time . "</b><br>\n";
    echo "</div>";
    ...

    В итоге при каждом генерировании страницы, внизу, мы увидем профайл doctrine, к примеру вот так:

    query [0.001810]
    SELECT l.id AS l__id, l.date AS l__date, l.username AS l__username, l.ip AS l__ip, l.text AS l__text, l.created_at AS l__created_at, l.updated_at AS l__updated_at FROM logs l ORDER BY l.date DESC LIMIT 20
    prepare [0.000102]
    SELECT u.id AS u__id, u.status AS u__status, u.role AS u__role, u.username AS u__username, u.password AS u__password, u.email AS u__email, u.im AS u__im, u.lastlogin AS u__lastlogin, u.ballance AS u__ballance, u.created_at AS u__created_at, u.updated_at AS u__updated_at FROM users u WHERE u.id = ? LIMIT 1
    execute [0.002061]
    SELECT u.id AS u__id, u.status AS u__status, u.role AS u__role, u.username AS u__username, u.password AS u__password, u.email AS u__email, u.im AS u__im, u.lastlogin AS u__lastlogin, u.ballance AS u__ballance, u.created_at AS u__created_at, u.updated_at AS u__updated_at FROM users u WHERE u.id = ? LIMIT 1
    array(1) { [0]=> string(1) "1" }
    fetch [0.000094]
    SELECT u.id AS u__id, u.status AS u__status, u.role AS u__role, u.username AS u__username, u.password AS u__password, u.email AS u__email, u.im AS u__im, u.lastlogin AS u__lastlogin, u.ballance AS u__ballance, u.created_at AS u__created_at, u.updated_at AS u__updated_at FROM users u WHERE u.id = ? LIMIT 1
    fetch [0.000075]
    SELECT u.id AS u__id, u.status AS u__status, u.role AS u__role, u.username AS u__username, u.password AS u__password, u.email AS u__email, u.im AS u__im, u.lastlogin AS u__lastlogin, u.ballance AS u__ballance, u.created_at AS u__created_at, u.updated_at AS u__updated_at FROM users u WHERE u.id = ? LIMIT 1
     
    Total time : 0.00414180755615

    Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

    Уникальных посетителей темы: 50

    Мар 8

    Doctrine Pagination – Постраничная разбивка средствами Doctrine

    Posted on Воскресенье, марта 8, 2009 in Doctrine, php, ZendFramework, Новости

    В ZendFramework конечно есть модуль Pagination, но после его использования я решил поглядеть а что есть у Doctrine и нужно сказать что у нее это ЕСТЬ и реализованно неплохо!

    Оригинальное описание находится тут: http://www.doctrine-project.org/documentation/manual/1_0/en/utilities#pagination

    Пример использования:

    1. В контроллере пишем:

    $currentPage=$this->_getParam("pager"); // Номер страницы из роутера
    $resultsPerPage=20; // Cколько результатор на одной странице
    $pager_layout = new Doctrine_Pager_Layout (
    	new Doctrine_Pager (
     	  Doctrine_Query :: create ()
     	   	  ->from ( "Users u" )
     	   	  ->orderBy ( "id DESC" ),
     	   	   	  $currentPage ,
     	   	   	  $resultsPerPage
     	),
     	new Doctrine_Pager_Range_Sliding ( 
                 array ( "chunk" => 5 )),
    	      "/admin/users/index/{%page_number}"
    	);
     
    $pager_layout ->setTemplate ('<a href="{%url}" class="pager">{%page}</a> ');
    $pager_layout ->setSelectedTemplate ('<b class="pager">{%page}</b> ');
    $pager = $pager_layout ->getPager ();
    $users = $pager->execute();
     
    $this->view->pager = "Page: ".$pager_layout ->display('',true)." Total items: <b>".$pager->getNumResults()."</b>";

    2. В роутере пропишем:

    $router->addRoute('amdinUsers',
      new Zend_Controller_Router_Route('admin/users/index/:pager', 
        array('module' => 'admin', 'controller' => 'users', 'action' => 'index', 'pager' => '1')
      ));

    3. В виеве соответственно ловим:

    <div class="pager_box"><?php echo $this->pager ?></div>

    Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

    Уникальных посетителей темы: 142

    Ноя 25

    Zend Paginator Helper – для тех кто парится (Zend_Paginator)

    Posted on Вторник, ноября 25, 2008 in ZendFramework

    upd: Смотрите новую статью: Doctrine Pagination – Постраничная разбивка средствами Doctrine

    Разбирал Zend_Paginator, вроде все гуд, но вот захотелось мне что бы было что то типа такого вывода нумерации страниц:

    Ан нету пока в ZF этого, порыл инет, нашел замечательный хелпер Zend Framework Pagination Helper.

    Позволяет сделать пагинаторы следующих видов: Classic style, Digg style, Extended style, PunBB style.
    Выглядит это так:

    Для того что бы использовать данный хелпер, качаем его из svn:

    svn checkout http://svn2.assembla.com/svn/ZendPaginationHelper .

    И в контроллере:

    $this->view->addHelperPath('notech/view/helper', 'Notech_View_Helper');
           $this->view->pagination_config = array( 'total_items'=>100,
                                                   'items_per_page'=>25,
                                                   'style'=>'digg');


    И в виеве:

    echo $this->pagination($this->pagination_config)->create_links();

    Удачи =)

    п.с. нашел тут:

    http://www.assembla.com/wiki/show/ZendPaginationHelper

    Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

    Уникальных посетителей темы: 435