簡體   English   中英

如何在我的項目中使用Zend Framework 2類?

[英]How to use Zend Framework 2 class in my project?

我只是想有可能使用此庫的類,但在2小時后無法使用:

那么如何將Zend Framework 2.1與他的自動加載器一起使用以僅使用該庫的類而不創建ZF項目?

我已經嘗試使用classmap_generator,inlude_path進行所有操作...我沒有任何錯誤,但仍然返回我:

找不到動作課? 找不到版本類別!

謝謝。

您可以通過composer安裝單個Zend Framework模塊,這將為您完成大部分工作:

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/

由於ZF2組件是分離的並且專注於特定任務,因此一類經常使用另一類來開展業務。 僅包含一個類文件通常是不夠的。

結果,ZF2肯定需要一些自動加載。 但是您不必使用ZF2自動加載器。

如果您的應用程序中還沒有自動加載功能,那么添加它實際上很容易:

  1. 確保Zend庫的路徑在include_path
  2. 使用spl_autoload_register()注冊符合PSR-0標准的自動加載器

就像是:

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類。

經過多次搜索,我已經安裝了作曲家。 但是我對這個解決方案並不滿意,因為它影響了我的系統。

這是我的程序,我仍然說ZF文檔非常差。

使用COMPOSER安裝ZEND FRAMEWORK

1)允許白名單

suhosin.executor.include.whitelist = phar在文件中:nano /etc/php5/cli/conf.d/suhosin.ini

2)下載作曲家

Apt-get install curl curl -sS https://getcomposer.org/installer | 的PHP

3)移動作曲家

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

4)復制composer.json

復制composer.json(來自zend framework存檔)到我的根文件夾應用程序

5)Composer安裝

執行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

只需在自動加載器中注冊名稱空間即可。

如果您使用的是作曲家,則添加include_once '<path to vendor dir>/autoload.php'; 在您的php文件之上

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM