Търсейки най простия пример за ползването на Zend Framework установих, че е доста трудно да се намери чист и прост пример за сетъпването на проект без PHP cli.
Накратко както трябва да се направи за да можете да го ползвате по стандартния начин.
-
Започвате от това да изтеглите най-новата версия на пакета от : http://zendframework.com/.
-
Приготвяте си следната дървовидна структура.
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();
?>
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();
}
}
?> Zend MVC Framework Test : <?php echo $this->title; ?> Смятам ,че вече съм си изградил стриктен и изпитан начин на писане и се определям като професионалист. Имам модулчета на Flash и на Flex( адски удобно като нямаш "дизайнерски" умения ).
Предпочитам да работя на Ubuntu, но заради самото естество на работата, работя основно под Windows. Обичам да уча нови и нови неща и да тествам вариянти ,дори и заради самото тестване.