我正在尝试使用Slim PHP 2.0、Composer和几个第三方软件包构建一个REST API。我使用Composer在应用程序的根目录中创建了一个Composer.json文件来安装Slim,其中包含以下内容:
{
"require": {
"slim/slim": "2.*"
}
}
在我运行composer安装后,我有以下结构:
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更新后,我得到了以下目录结构。
root/
vendor/
composer/
openlss/
slim/
vlucas/
autoload.php
composer.json
composer.lock
index.php
从这里开始,我不知道如何为我的应用程序设置自动加载。我有时看到自动加载类映射,其他时候看到psr-0。在这些第三方软件包之上,我将创建自己的模型来使用。一个是处理连接到数据库的基本模型,然后每个表都有一个我用来操作所述表的模型。因此,为了与users表交互,我将使用下面的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开发人员的必备品,我正试图强迫自己学习它
Composer为composer.json
中指定的第三方库提供了一个自动加载器。看见https://getcomposer.org/doc/01-basic-usage.md#autoloading.您可以根据需要定制自动加载器,它同时支持PSR-4和classmap。有关更多详细信息,请参阅自动加载参考。
我的意思是,这在现实中非常简单。如果要自动加载这些类,则需要自动加载.php
require 'vendor/autoload.php';
或者,在composer.json
中,您可以声明它。
{
"autoload": {
"psr-0": {"Libraries": "vendor/open-lss"}
}
}
这将允许你做:
namespace Librariesfunc-bcrypt
class bCrypt_class{
}
我相信你正试图实现