0

zend フレームワークで完全にモジュール (管理者) を作成しました。バックエンドからサイト全体を管理できるように、フロントエンドで作業を開始したいと考えています。しかし、私はこれに対する解決策を得ることができません。localhost でページを実行すると、バックエンドの css とバックエンドのテーマが自動的に呼び出され、エラー メッセージ「例外情報」が表示されます。

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"

admin.bootstrap.path = APPLICATION_PATH "/modules/admin/Bootstrap.php"
admin.bootstrap.class = "Admin_Bootstrap"

appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1

resources.session.name = "ZendSession"
;resources.session.save_path = APPLICATION_PATH "/../data/session"
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 86400

resources.layout.layout = "layout"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
admin.resources.layout.layout = "admin"
admin.resources.layout.layoutPath = APPLICATION_PATH "/modules/admin/layouts/scripts"


resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "/views/"
resources.view[] =

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =
resources.view[] =
admin.resources.view[] = 

resources.db.adapter = Pdo_Mysql
resources.db.params.username = root
resources.db.params.password = 
resources.db.params.dbname = myproject
resources.db.isDefaultTableAdapter = true

[staging : production]


[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1 

ブートストラップ ファイルでは、関数またはプラグインの初期化がありません

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{


}

次のように、モジュール管理者用に個別の bootsrap.php ファイルを作成しました:-

<?php
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
    /*protected function _initAppAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'names pace' => 'admin',
            'basePath' => APPLICATION_PATH . '/modules/admin/'
        ));
        return $autoloader;
    }*/

    protected function _initDoctype()
    {
      global $adminModuleCssPath;
      global $adminModuleJsPath;
      $this->bootstrap( 'view' );
      $view = $this->getResource( 'view' );

      $view->headTitle('Projects for learning');
      $view->headScript()->appendFile($adminModuleJsPath.'jquery-1.7.2.js');
      $view->headScript()->appendFile($adminModuleJsPath.'jquery-ui.js');     
      $view->headScript()->appendFile($adminModuleJsPath.'tinybox.js');
      $view->headScript()->appendFile($adminModuleJsPath.'common.js');
      $view->headLink()->appendStylesheet($adminModuleCssPath.'jquery-ui.css');
      $view->headLink()->appendStylesheet($adminModuleCssPath.'style.css');
      $view->headLink()->appendStylesheet($adminModuleCssPath.'theme.css');
      $view->headLink()->appendStylesheet($adminModuleCssPath.'tinybox.css');
      $view->doctype( 'XHTML1_STRICT' );
      //$view->navigation = $this->buildMenu();
    }

    protected function _initLayoutPlugin()
    {
         $layout = Zend_Controller_Front::getInstance();
         $layout->registerPlugin(new Admin_Plugin_AdminLayout());

    }

    protected function _initAuthPlugin()
    {
       $checkAuth = Zend_Controller_Front::getInstance();
       $checkAuth->registerPlugin(new Admin_Plugin_CheckAuth(Zend_Auth::getInstance()));
    }

    protected function _initRouter()
    {
        $frontController = Zend_Controller_Front::getInstance();
        $router = $frontController->getRouter();
        $route = new Zend_Controller_Router_Route(
                 ':module/:controller/:action/*',
                 array('module' => 'admin')
              );
        $router->addRoute('default', $route);

        $usersRoute = new Zend_Controller_Router_Route_Regex(
                      ':module/:controller/:action/(?:/page/(\d+)/?)?',
                      array(
                            'module' => 'admin',
                            'controller' => 'users',
                            'action' => 'index',
                            'page' => 1,
                            ),
                      array(
                              'page' => 1,
                            )
                    );

        $router->addRoute('users-index', $usersRoute);

    }

    protected function _initActionHelpers()
    { 
        Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . "/modules/admin/views/helpers");
        Zend_Controller_Action_HelperBroker::addPrefix('Admin_View_Helper');
    }

    /*protected function _initAutoload()
    {
        $autoloader = new Zend_Loader_Autoloader_Resource(array(
            'namespace' => '',
            'basePath' => APPLICATION_PATH."/modules/admin",
            'resourceTypes' => array(
                'form' => array(
                    'path' => 'forms',
                    'namespace' => 'Form',
                ),
                'model' => array(
                    'path' => 'models',
                    'namespace' => 'Model',
                ),
            )
        ));
        return $autoloader;
    }*/

}

エラーが発生した場所はわかりません。Zend Framework は初めてです。この問題を解決するために誰か助けてください。フロント サイト コントローラーとアクションを呼び出して、バックエンド モジュール (admin) で管理できます。

4

1 に答える 1

1

すべてのモジュールのブートストラップ クラスは、すべての要求で呼び出されます。

モジュール固有の設定 (ビューの初期化など) を実行する必要がある場合は、フロント コントローラー プラグインをrouteShutdown()フックに登録します。ディスパッチ サイクルのその時点で、どのモジュールが呼び出されているかがわかるので、ビューをどのように構成するかがわかります。

詳細については、この回答とZF1 モジュールのブートストラップに関する MWOP の投稿を参照してください。

于 2013-03-28T13:25:44.993 に答える