【问题标题】:Yii2 third-party PHP classYii2 第三方 PHP 类
【发布时间】:2013-12-05 16:40:51
【问题描述】:

我想为我的应用程序安装一个第三方 PHP 类。我应该如何在 Yii2 中做到这一点?我在文档中找不到任何内容。

【问题讨论】:

  • 这需要更多信息和上下文。

标签: php class yii yii2


【解决方案1】:

简单的方法是在 Yii2 定义的任何命名空间中注册你的类,并在文件中使用它作为use app\namespace\classname;

【讨论】:

    【解决方案2】:

    就像 FIMAk 所说的,它在文档中有很好的记录,但我仍然不清楚如何将下载的库与自动加载器类一起使用。所以这就是我所做的:

    1) 在vendor 目录中创建新文件夹并将库放在那里

    2) 在包含 Yii 之前,入口脚本中需要自动加载器,如果是基本应用程序模板,则为 path_to_yii_installation/web/index.php

    例如,在需要生成 Excel 工作表之前,我曾参与的一个项目中,我发现 PHPExcel 是执行此操作的最佳库。所以我像这样包含了 PHPExcel 自动加载器:

    require(__DIR__ . '/../vendor/excel/PHPExcel.php');

    我完整的index.php 文件如下所示:

    <?php
    
    // comment out the following two lines when deployed to production
    // defined('YII_DEBUG') or define('YII_DEBUG', true);
    // defined('YII_ENV') or define('YII_ENV', 'dev');
    
    require(__DIR__ . '/../vendor/excel/PHPExcel.php');
    require(__DIR__ . '/../vendor/autoload.php');
    require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
    
    $config = require(__DIR__ . '/../config/web.php');
    
    (new yii\web\Application($config))->run();
    

    3) 在控制器、模型或任何您想使用库的顶部添加 use LibraryClassName 即可。

    【讨论】:

    • 您能否通过示例扩展第 2 步。我的 index.php 有“require(DIR .'/../../vendor/autoload.php');”那么这是否意味着该步骤已完成?
    • @crafter 现在好点了吗?
    【解决方案3】:

    其实documentation中描述的很好。

    您可以了解如何安装:

    1. 使用作曲家;
    2. 使用下载的库;
      • 如果库带有自己的类自动加载器;
      • 如果库不提供类自动加载器,但其类命名遵循 PSR-4;
      • 如果以上都不是;

    【讨论】:

      【解决方案4】:

      在 composer.json 中添加第三方库并点击一个命令

       composer update
      

      总是选择基于作曲家的库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-09
        • 2016-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-23
        相关资源
        最近更新 更多