私はZendFrameworkを初めて使用し、通常のApache 2+PHPサーバーで使用しています。
Zend_Table_Abstractを拡張するモデルを使用したいと思います。/ application / modelsディレクトリに配置しましたが、これらのファイルは含まれていません(構文エラーがありますが、アプリは正常に動作します)。それらを含めるために必要なアクションは何ですか?Bootstrapで何をする必要があり、どの命名規則に従う必要がありますか?ユーザーや記事のような通常の名前を使用している人を見たことがあります。
/application/models/Languages.php:
<?php
adasdasdadasd
echo 'hi';
class Languages extends Zend_Db_Table_Abstract {
protected $_name = 'languages';
}
/application/controllers/LanguageController.php
<?php
class LanguagesController extends Zend_Controller_Action {
public function indexAction() {
$languages = new Languages();
$this->view->languages = $languages->select();
}
}
/application/Bootstrap.php
(いくつかの例または回答からコピーしたという理由だけで、いくつかのコードがあります)
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
protected function _initAutoload() {
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH)
);
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace(array('Application_'));
return $moduleLoader;
}
protected function _initResourceAutoloader()
{
$autoloader = new Zend_Loader_Autoloader_Resource(array(
'basePath' => APPLICATION_PATH,
'namespace' => 'Application_',
));
return $autoloader;
}
protected function _initFrontController()
{
$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory(APPLICATION_PATH . '/controllers');
if ($controller->getParam('bootstrap') === null) {
$controller->setParam('bootstrap', $this);
}
return $controller;
}
protected function _initApplication() {
}
protected function _initModuleConfig()
{
}
protected function _initLayout(){
return Zend_Layout::startMvc();
}
protected function _initViewHelpers() {
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->doctype('XHTML1_STRICT');
$view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
$view->headTitle()->setSeparator(' - ');
$view->headTitle('My Application');
$view->headLink()->appendStylesheet('css/general.css');
$view->headLink()->appendStylesheet('css/navigation.css');
}
protected function _initNavigation() {
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
$navigation = new Zend_Navigation($config);
$view->navigation($navigation);
}
}
/application/configs/application.ini
:
[production]
; Models
includePaths.models = APPLICATION_PATH "/models/"
; Debug output
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
; Bootstrap
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
; Database
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.dbname = "dabase"
resources.db.params.username = "root"
resources.db.params.password = "password"
resources.db.isDefaultTableAdapter = true
[development : production]
; Debug output
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
; Database
resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "localhost"
resources.db.params.dbname = "dabase"
resources.db.params.username = "root"
resources.db.params.password = "password"
resources.db.isDefaultTableAdapter = true