【问题标题】:Using Composer Packages with Slim PHP 2.0在 Slim PHP 2.0 中使用 Composer 包
【发布时间】:2014-02-23 02:11:43
【问题描述】:

我正在尝试使用 Slim PHP 2.0、Composer 和几个第三方包构建 REST API。我使用 Composer 通过在我的应用程序的根目录中创建一个 composer.json 文件来安装 Slim,其中包含以下内容:

{
    "require": {
        "slim/slim": "2.*"
    }
}

运行 composer install 后,我有以下结构:

root/
    vendor/
        composer/
        slim/
        autoload.php
    composer.json
    composer.lock
    index.php

我想包括 Valitron (https://packagist.org/packages/vlucas/valitron) 库和这个 Bcrypt (https://packagist.org/packages/openlss/func-bcrypt) 库一起进行验证,以便为用户散列密码。因此,我在 composer.json 文件中添加了以下内容,使其看起来像这样:

{
    "require": {
        "slim/slim": "2.*",
        "vlucas/valitron": "dev-master",
        "openlss/func-bcrypt": "dev-master"
    }
}

运行 composer update 后,我得到了以下目录结构。

root/
    vendor/
        composer/
        openlss/
        slim/
        vlucas/
        autoload.php
    composer.json
    composer.lock
    index.php

从这里开始,我不确定如何为我的应用程序设置自动加载。我有时会看到自动加载类映射,有时会看到 psr-0。在这些第三方包之上,我将创建自己的模型以供使用。一个是处理连接到数据库的基本模型,然后每个表都有一个模型,我用它来操作所述表。因此,为了与用户表交互,我将使用下面的 UserModel.php 文件。我的另一个问题是我将如何在这个文件中“使用” Valitron 和 BCrypt 文件?我会这样做吗:

<?php namespace Libraries;

use \Valitron;
use \BCrypt;

class UserModel extends BaseModel {

    // I want to use the Valitron class here along with the crypt file

}

我将如何设置自动加载器来完成此操作?任何帮助是极大的赞赏。我已经非常不喜欢 Composer,但是由于每个人都说它是 PHP 开发人员必须的,所以我试图强迫自己学习它。

【问题讨论】:

    标签: php composer-php slim


    【解决方案1】:

    Composer 为composer.json 中指定的第三方库提供自动加载器。见https://getcomposer.org/doc/01-basic-usage.md#autoloading。您可以根据需要自定义自动加载器,它支持 PSR-4 和 classmap。有关详细信息,请参阅autoload reference

    【讨论】:

      【解决方案2】:

      我的意思是,实际上这很简单。如果你希望这些类被自动加载,那么需要 autoload.php

      require 'vendor/autoload.php';
      

      或者,您可以在composer.json 中声明它。

      {
          "autoload": {
              "psr-0": {"Libraries": "vendor/open-lss"}
          }
      }
      

      您可以这样做:

      namespace Libraries\func-bcrypt
      
      class bCrypt_class{
      
      }
      

      这就是我相信你正在努力实现的目标

      【讨论】:

        猜你喜欢
        • 2014-05-02
        • 1970-01-01
        • 1970-01-01
        • 2013-06-28
        • 2017-03-04
        • 2016-12-10
        • 2014-07-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多