CodingPHP

Composer autoload

Создание автозагрузки классов в проекте с соблюдением PSR4 с помощью менеджера зависимостей Сomposer.

Для начала создадим необходимую структуру проекта. В данном случае она будет относительно простой:

Затем переходим в терминал и инициализируем Composer, после чего будет необходимо ввести название проекта, автора, нужные зависимости:

vagrant@homestead:~/projects/design/strategy$ composer init

                                            
  Welcome to the Composer config generator  
                                            


This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [vagrant/strategy]: yakoffka/strategyexapmle
Description []: example strategy pattern design
Author [, n to skip]: n
Minimum Stability []: 
Package Type (e.g. library, project, metapackage, composer-plugin) []: 
License []: 

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? n
Would you like to define your dev dependencies (require-dev) interactively [yes]? n

{
    "name": "yakoffka/strategyexapmle",
    "description": "example strategy pattern design",
    "require": {}
}

Do you confirm generation [yes]? 
vagrant@homestead:~/projects/design/strategy$ 

после чего будет создан файл composer.json:

{
    "name": "yakoffka/strategyexapmle",
    "description": "example strategy pattern design",
    "require": {}
}

в котором необходимо определить секцию autoload:

{
    "name": "yakoffka/strategyexapmle",
    "description": "example strategy pattern design",
    "require": {},
    "autoload": {
        "psr-4": {
            "App\\": "app"
        }
    }
}

..хотя можно просто вручную создать файл composer.json, содержащий только необходимую нам секцию ‘autoload’. Тут уж на вкус и цвет..

{
    "autoload": {
        "psr-4": {
            "App\\": "app"
        }
    }
}

В секции «autoload» мы сообщаем Composer о необходимости зарегистрировать автозагрузчик PSR-4 для пространства имен ‘App’.

После добавления секции автозагрузки необходимо запустить команду ‘dump-autoload’, которая сгенерирует файл ‘vendor/autoload.php’:

vagrant@homestead:~/projects/design/strategy$ composer dump-autoload -o
Generating optimized autoload files
Generated optimized autoload files containing 0 classes
vagrant@homestead:~/projects/design/strategy$ 

Подключаем ‘vendor/autoload.php’ в index.php:

<?php

require('vendor/autoload.php');

...

Автозагрузка классов с помощью composer завершена. Детали можно глянуть на официальном сайте getcomposer.org.

Оставить комментарий

avatar
  Подписаться  
Уведомление о