справочная информация
войти в мой блог
В связи с постоянным увеличением объема кода проекта и зависимостью от некоторых библиотек нам приходится внедрять управление пакетами для решения таких проблем, как трудности в управлении, чтении и модульности.
Трехсторонняя библиотека отличная, и многие ее поддерживают, да и стыковка функций тоже удобна, нам не нужно тратить время на упаковку или сборку колес для этой часто используемой функции.
Многие люди практиковали это в своих проектах, если есть проблема, то вопрос будет решен в ближайшее время, и функция будет продолжать улучшаться.
Всегда подчеркивалось, что, стоя на плечах гигантов, мы пойдем дальше, может быть, код, который мы создали сами, трудносопоставим.
Сосредоточьтесь на своих основных продуктах и функциональном времени, научитесь учиться и использовать их, а также сократите собственные затраты на разработку.
Некоторые люди могут подумать, что использование мной сторонней библиотеки может повлиять на производительность, а некоторые функции я вообще не могу использовать. В коде проекта много бесполезного кода, из-за чего файл загружается слишком медленно,
На самом деле не волнуйся,opcache
PHP-скрипты могут быть предварительно скомпилированы в разделяемую память для повышения производительности PHP.
php Composer psr-4 autoload
Composer — это инструмент, используемый php для управления зависимостями.Он может объявлять внешне зависимые библиотеки инструментов в проекте.Composer поможет вам установить эти файлы зависимых библиотек. psr-4 — это спецификация кода, которая включает автоматическую загрузку пакетов, указывает, как автоматически загружать классы из путей к файлам, а также указывает расположение автоматически загружаемых файлов.
Автоматически загрузка
В поддержку проекта Composer нам нужно только ввести этот файл, а также следующий код PHP, вы можете получить поддерживаемую поддержку.
<?php
require_once __DIR __ . '/vendor/autoload.php';
composer.json
{
"autoload": {
"psr-4": {
"Work\\": "src/"
},
"psr-0": {
"Vendor_Namespace_": "src/"
}
}
}
Composer зарегистрирует автозагрузчик PSR-4 в пространстве имен Work, PSR-0 поддерживает_
, который автоматически преобразуется в структуру каталогов
classmap
Библиотеки классов, не соответствующие спецификации PSR-0/4,
files
Явно указать файл для загрузки
дополнительный
Репозитории пакетов пользовательских библиотек ресурсов
type
- Репозиторий типа Composer, простой веб-сервер
- vcs git, svn, hg и т. д.
- груша получает ресурсы от груши
- пакет встроенный один
composer.json
объект
scripts
Composer позволяет перехватывать скрипты на разных этапах процесса установки.
Подробный процесс
Типичная команда, когда композитор установлен
- post-install-cmd
composer install
Запускается после выполнения - post-update-cmd
composer update
Запускается после выполнения
демонстрация пользовательского скрипта
{
"scripts": {
"post-update-cmd": "MyVendor\\MyClass::postUpdate",
"post-package-install": [
"MyVendor\\MyClass::postPackageInstall"
],
"post-install-cmd": [
"MyVendor\\MyClass::warmCache",
"phpunit -c app/",
"find vendor -type d -name .git -exec rm -rf '{}' \\;"
]
}
}
<?php
namespace MyVendor;
use Composer\Script\Event;
class MyClass
{
public static function postUpdate(Event $event)
{
$composer = $event->getComposer();
// do stuff
}
public static function postPackageInstall(Event $event)
{
$installedPackage = $event->getOperation()->getPackage();
// do stuff
}
public static function warmCache(Event $event)
{
// make cache toasty
}
}
В противном случае видно, что исполняемый скрипт может быть статическим методом в классе, конечно же, функцией илиshell
Заказ
Мы также можем выполнить некоторые команды вручную
composer run-script [--dev] [--no-dev] script
расширять
Кстати, несколько других спецификаций кода
PSR
psr-0 автозагрузка
psr-1 Базовые спецификации кода
- появляются только в файле
<?php
и<?=
Этикетка (обязательно) - просто используйте
utf-8
php-код без заголовка BOM (обязательно) - Объявить новый спецификатор типа без побочных эффектов
- Пространства имен следуют
autoload
автозагрузкаpsr-0/4
Спецификация (обязательно) - регистр верблюжьего имени класса (обязательно)
- Постоянное подчеркивание в классе
_
отдельный (обязательно) - метод верблюжьего футляра (обязательно)
psr-2 стиль кода
- должен следовать psr-1
- четыре пробела, а не табы
- Ограничьте длину каждой строки до 80 или меньше
- пространство имен и использование должны быть пустыми
- Скобки класса должны быть на отдельной строке
- методы класса, а также
- Все свойства и методы должны быть до модификатора, статические после
- После ключевого слова должен быть пробел
- Кодовой контроль процесса,
{
В одной строке,}
отдельная строка -
{
без пробела после,}
без пробелов перед
psr-3 интерфейс журнала
- уровень ошибки
RFC 5424
(отладка, информация, уведомление, предупреждение, ошибка, критическое, оповещение, чрезвычайное происшествие)
psr-4 автозагрузка
Чище, чем спецификация psr-0 Подчеркивание в спецификации PSR-0_
будут преобразованы в разделительные линии каталогов
Подробности описаны выше и здесь повторяться не будут.