0

このライブラリのクラスを使用できるようにしたいのですが、2時間後には不可能です:

では、オートローダーで Zend Framework 2.1 を使用して、ZF プロジェクトを作成せずに、このライブラリのクラスのみを使用するにはどうすればよいでしょうか?

私はclassmap_generator、inlude_pathですべてを試しました...エラーはありませんが、それでも私を返します:

アクション クラスが見つかりませんか? バージョン クラスが見つかりませんでした!

ありがとうございます。

4

4 に答える 4

3

コンポーザーを介して個々のZendFrameworkモジュールをインストールできます。これにより、ほとんどの処理が行われます。

composer.json

{
    "require": {
        "zendframework/zend-http": "2.*"
    },  
    "repositories": [
        {   
            "type": "composer",
            "url": "http://packages.zendframework.com/"
        }   
    ],  
    "minimum-stability": "dev"
}

これにより、すべての自動読み込みが処理されます。Composerは、アプリに含めるオートローダーを生成します。

require 'vendor/autoload.php';

そこにはたくさんの作曲家の例があります:

https://packages.zendframework.com/#composer

http://net.tutsplus.com/tutorials/php/easy-package-management-with-composer/

于 2013-02-21T11:43:55.090 に答える
2

ZF2 コンポーネントは分離され、特定のタスクに集中しているため、1 つのクラスが別のクラスを使用して業務を遂行することがよくあります。通常、1 つのクラス ファイルを単にインクルードするだけでは十分ではありません。

その結果、ZF2 には間違いなくオートロードが必要です。ただし、ZF2 オートローダーを使用する必要はありません。

アプリにオートローディングがまだ設定されていない場合は、実際には非常に簡単に追加できます。

  1. Zend ライブラリへのパスが にあることを確認してくださいinclude_path
  2. を使用して、標準の PSR-0 準拠のオートローダーを登録します。spl_autoload_register()

何かのようなもの:

spl_autoload_register(function($class)){
    $file = str_replace('\\', '/', $class) . '.php';
    $resolvedFile = stream_resolve_include_path($file);
    if (file_exists($resolvedFile)) {
        include $resolvedFile;
        return $class;
    }
});

アプリケーション用のオートローダーが既にある場合、それが PSR-0 に準拠していなかったとしたら、私は非常に驚かれることでしょう。前と同様に、Zend ライブラリが にあることを確認してinclude_pathください。

Zend ライブラリがインクルード パスにない場合でも、ファイル システムのどこにライブラリがあるかを認識するカスタム オートローダーを作成できます。

いずれの場合も、目的のクラスの使用法は次のとおりです。

$myinstance = new \Zend\Component\Class();

適切なオートローディングが設定されていれば (どのように選択しても)、このクラスは、業務を遂行するために必要な他の Zend クラスを使用できます。

于 2013-02-21T16:10:05.517 に答える
1

多くの検索の後、私は作曲家をインストールしました。しかし、このソリューションはシステムに影響を与えるため、あまり満足していません。

ここに私の手順があります.ZFのドキュメントは非常に貧弱です.

Composer で ZEND FRAMEWORK をインストールする

1) ホワイトリストを許可する

suhosin.executor.include.whitelist = phar ファイル内: nano /etc/php5/cli/conf.d/suhosin.ini

2) コンポーザーのダウンロード

Apt-get インストール カール curl -sS https://getcomposer.org/installer | php

3) コンポーザーの移動

mv composer.phar /usr/local/bin/composer

4) composer.json をコピーします。

composer.json (zend フレームワーク アーカイブから) を my root フォルダー アプリケーションにコピーします。

5) コンポーザーのインストール

composer.json がある場所で実行します

これで、アプリ フォルダーに「vendor」という名前のフォルダーが作成され、php コードで使用できるようになります。

include("vendor/autoload.php");
new Zend\Mail\Storage\Pop3(...);

そして今、それは私のために働きます。

バグ許容メモリサイズ:

php -r "echo ini_get('memory_limit').PHP_EOL;" 1024M nano に変更 /etc/php5/cli/php.ini /etc/init.d/apache2 再起動

http://github.com/zendframework/Component_ZendStdlib.gitのクローンに失敗しました。git が見つかりませんでした。

GIT Apt-get install git をインストールします。

于 2013-02-22T10:14:04.390 に答える
0

オートローダーに名前空間を登録するだけです。

composerを使用している場合はinclude_once '<path to vendor dir>/autoload.php';、phpファイルの上に追加します

于 2013-02-21T11:38:10.160 に答える