0

ここで、Zend Acl を使用して開始する方法のガイダンスを見つけ、最良の回答の手順を実行しましたが、この操作に行き詰まってしまいました。

最後のステップは、configAcl.php をロードし、AuthPlugin をブートストラップ ファイル (おそらく index.php) に登録することです。

アプリケーションを起動すると、

致命的なエラー: 28 行目の C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\myproject\public\index.php にクラス 'AuthPlugin' が見つかりません

しかし、私はこのプラグインを applications/plugins フォルダーに入れました。私はZend Frameworkを初めて使用し、v.1.12を使用しています(新しいバージョンでプロジェクトを作成する方法がわからなかったため、binフォルダーのコマンドラインアプリがありませんでした)。

Bootstrap.php ファイルを編集する必要があるかもしれませんが、方法がわかりません。public/index.php のコードが私のものとは大きく異なるため、私が見つけたすべての命令は別のバージョンのフレームワークのように見えます。

4

3 に答える 3

0

私はそれが本当に古い質問であることを知っていますが、誰かがこのスレッドに出くわした場合に備えて、私が見つけた答えを残しておきます.

あなたが投稿した回答は機能しますが、application.ini で別の回答を見つけました。ZF は命名基準に従います。Plugin_ViewSetup は Plugin/ViewSetup.php に解析されます。プラグインの場合、ZF は自動的に「ライブラリへのパス」を検索します。つまり、ライブラリのディレクトリ (Zend ライブラリがある場所) 内を検索します。したがって、プラグインは次のようになります: library/Plugin/ViewSetup.php ... これが 1 つのシナリオです。次に、application.ini に次の行を追加するだけです。

autoloaderNamespaces[] = "Plugin_"
resources.frontController.plugins.ViewSetup = "Plugin_ViewSetup"

あなたのケースに翻訳すると、次のようになります。

autoloaderNamespaces[] = "Plugins_"
resources.frontController.plugins.AuthPlugin = "Plugins_AuthPlugin"

ライブラリ構造は次のようになります。

library/Plugins/AuthPlugin.php

これがここでつまずいた人に役立つことを願っています!

于 2013-05-25T09:48:26.333 に答える
0

それで、1時間座った後、私はついにそれを行う方法を見つけました. 正直なところ、アプリケーションのページが再帰的にリダイレクトされるというエラーが私のFirefoxだけに表示されなければ、私の質問に対する答えをより早く見つけることができたでしょう。Firefoxの再起動後、問題は消えました。それが答えです。ブートストラップで次のコードを使用します。

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoload() {
    require_once '../application/plugins/AuthPlugin.php';
    require_once '../application/configs/configAcl.php';
}

protected function _initControllerPlugins()
{

$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new AuthPlugin());

}
}

これが、私のように Zend Framework の初心者に役立つことを願っています。

于 2013-02-07T23:16:45.900 に答える