Использование пакетов Composer с Slim PHP 2.0

Я пытаюсь создать REST API, используя Slim PHP 2.0, Composer и пару сторонних пакетов. Я использовал Composer для установки Slim, создав файл composer.json в корне моего приложения со следующим:

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

После того, как я запустил установку композитора, у меня есть следующая структура:

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"
    }
}

После того, как я запустил обновление композитора, я получил следующую структуру каталогов.

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-разработчиков, я пытаюсь заставить себя изучить его.


person WebDev84    schedule 22.02.2014    source источник


Ответы (2)


Composer предоставляет автозагрузчик для сторонних библиотек, указанных в composer.json. См. https://getcomposer.org/doc/01-basic-usage.md#autoloading. Вы можете настроить автозагрузчик под свои нужды, он поддерживает как PSR-4, так и карта классов. Дополнительные сведения см. в справочнике по автозагрузке.

person Kevin Sjöberg    schedule 22.02.2014

Я имею в виду, это довольно просто на самом деле. Если вы хотите, чтобы эти классы загружались автоматически, то потребуйте autoload.php

require 'vendor/autoload.php';

Или в composer.json вы можете это объявить.

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

Что позволит вам сделать:

namespace Libraries\func-bcrypt

class bCrypt_class{

}

это то, что я считаю, что вы пытаетесь достичь

person Ohgodwhy    schedule 22.02.2014