Базов сетъп на ZendFramework проект

Търсейки най простия пример за ползването на Zend Framework установих, че е доста трудно да се намери чист и прост пример за сетъпването на проект без PHP cli.

 

Накратко както трябва да се направи за да можете да го ползвате по стандартния начин.

 

  1. Започвате от това да изтеглите най-новата версия на пакета от : http://zendframework.com/.

  2. Приготвяте си следната дървовидна структура.

    application/

    application/controllers/

    application/models/

    application/views/

    application/views/scripts/

    application/views/scripts/index/

library/Zend/

public/

 3.Ако сте изтеглили целия пакет на фрамеуърка в архива трябва да има папка library/Zend екстрактвате съдържанието в подготвената папка library/Zend/

 4. В папка public правите bootstrap index файл като в него има следното:

 

$rootDir dirname(dirname(__FILE__));
define('ROOT_DIR'$rootDir);
set_include_path(get_include_path()
    . 
PATH_SEPARATOR ROOT_DIR '/library/'
    
PATH_SEPARATOR ROOT_DIR '/application/models/'
);
require_once 
"Zend/Loader.php";
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_View');
Zend_Loader::loadClass('Zend_Session');
Zend_Loader::loadClass('Zend_Log');
Zend_Loader::loadClass('Zend_Controller_Request_Http');
Zend_Loader::loadClass('Zend_Debug');
Zend_Loader::loadClass('Zend_Auth');
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table');
Zend_Loader::loadClass('Zend_Registry');

Zend_Session::start();

require_once 
"Zend/Session/Namespace.php";
$consumer = new Zend_Session_Namespace("consumer");
Zend_Registry::set('consumer'$consumer);

$config = new Zend_Config_Ini("../application/config.ini""staging");
$db Zend_Db::factory($config->database->adapter$config->database->params->toArray());
Zend_Registry::set('config'$config);


/*
require_once "Zend/Log/Writer/Stream.php";

$writer = new Zend_Log_Writer_Stream($rootDir . "application/log/loger.log");
$logger = new Zend_Log($writer);
Zend_Registry::set('logger', $logger);
*/

$front Zend_Controller_Front::getInstance();
$front->setControllerDirectory('../application/controllers');
if(
$config->staging)
{
    
$front->throwExceptions(true);
}
else
{
    
$front->throwExceptions(false);
}

$front->dispatch();
?>

  1.  

    5.В application правите фаил config.ini ( примерно може да се кръсти както поискате стига да го отразите и в public/index.php ) и в него съответно трябва да има подобна структура :

    [staging]
    webhost = zend
    database.adapter = pdo_mysql
    database.params.host = localhost
    database.params.username = root
    database.params.password = devil
    database.params.dbname = dbname

  •  6. В application/controllers/ правите файл IndexController.php и в него слагате :

    <?php
    require_once "Zend/Controller/Action.php";
    class 
    IndexController extends Zend_Controller_Action
    {
        public function 
    indexAction()
        {
        
    $this->view->assign('title'"mraiur.com");
        
    $this->render();
        }
    }
    ?>
    7. В application/views/scripts/index/ правите файл index.phtml и за довършване слагате в него :  
    Zend MVC Framework Test : <?php echo $this->title?>
  • mraiur :
    Най-простото не е винаги най-лесно за намиране.
    добре дошли в портфолиото на николай иванов
    Занимавам се с разработка на интернет страници. От масата уеб програмисти , които пишат на PHP, Javascript, Javascript(jQuery) и MySQL.

    Смятам ,че вече съм си изградил стриктен и изпитан начин на писане и се определям като професионалист. Имам модулчета на Flash и на Flex( адски удобно като нямаш "дизайнерски" умения ).

    Предпочитам да работя на Ubuntu, но заради самото естество на работата, работя основно под Windows. Обичам да уча нови и нови неща и да тествам вариянти ,дори и заради самото тестване.