Каждый раз, когда пользователь сети создает новый проект, он должен реализовать его один раз composer create-project
гиперреф
/гиперреф-скелет
. На самом деле, каждый раз, когда вы создаете подобный проект, эффективность будет очень низкой. Личные проекты на самом деле хороши, но для корпоративных проектов они не так дружелюбны. Например, некоторые компании создадут множество пакетов компонентов или большое количество кода, такого как общедоступная конфигурация. каждый раз создавайте
Все проекты нуждаются в обновлении копия
Во-вторых, эффективность очень низкая, и ее неудобно поддерживать.
Так что мы можем сделать каркасный пакет. Каждый раз, когда мы создаем новый проект, мы можем инициализировать текущий базовый пакет в качестве чертежа.
Сделать каркасную упаковку
Мы используем гипервизор/гипервизор-скелет
Чтобы создать каркасный пакет без установки каких-либо опций.
composer create-project hyperf/hyperf-skeleton parent
Для удобства демонстрации я использую Github
Управление версиями.
Загрузите код в аквариум/родительский скелет
cd parent git init git remote add -m master origin [email protected]:Aquarmini/skeleton-parent.git git add . git commit -a -m "INIT" git push origin master git branch --set-upstream-to=origin/master master
Создать демонстрационный проект
Теперь давайте построим родительский
Установим демонстрационный
проект
mkdir demo git init git remote add -m master parent [email protected]:Aquarmini/skeleton-parent.git git pull parent master git branch parent git branch --set-upstream-to=parent/master parent git remote add -m master origin [email protected]:Aquarmini/skeleton-demo.git git checkout master git push origin master git push origin master git branch --set-upstream-to=origin/master master
Давайте взглянем на наш git
Для настройки
$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "parent"] url = [email protected]:Aquarmini/skeleton-parent.git fetch = +refs/heads/*:refs/remotes/parent/* [branch "parent"] remote = parent merge = refs/heads/master [remote "origin"] url = [email protected]:Aquarmini/skeleton-demo.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master
Давайте изменим код по желанию и отправим его на демонстрационный склад.
Объединить родительский
Когда у нашего родителя есть какие-либо изменения, нам просто нужно объединить их.
Давайте добавим di
Метод, легко получить Контейнер
измените composer.json
, следующий код опущен
{ "autoload": { "psr-4": { "App\": "app/" }, "files": [ "app/Kernel/Functions.php" ] } }
Затем увеличьте app/Kernel/Functions.php
файл
[email protected] * @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE */ use Hyperf\Utils\ApplicationContext; if (! function_exists('di')) { /** * Finds an entry of the container by its identifier and returns it. * @param null|mixed $id * @return mixed|\Psr\Container\ContainerInterface */ function di($id = null) { $container = ApplicationContext::getContainer(); if ($id) { return $container->get($id); } return $container; } }
Отправить код в родительский проект
Затем извлеките родительскую ветвь в демонстрационном проекте.
git checkout parent git pull parent master git checkout master git merge parent git push origin master
Написано в конце
Гиперфузия
Hyperf основан на Swool 4.4+
Реализации высокопроизводительной, гибкой платформы сотрудничества PHP, встроенного сервера сотрудничества и большого количества часто используемых компонентов, производительность основана на традиционной PHP-FPM
Обеспечивая сверхвысокую производительность, наша платформа также поддерживает чрезвычайно гибкую масштабируемость. Стандартные компоненты реализованы на основе стандартов PSR и на основе строгой конструкции внедрения зависимостей, гарантирующей, что большинство компонентов или классов Заменяемы
И Многоразовые
.
В дополнение к общей совместной версии MySQL-клиента
、 Redis-клиента
Он также предоставляет вам совместную версию Красноречивый ORM |/、
Сервер и клиент Websocket 、 |/Сервер и клиент JSON RPC
、 |/Сервер и клиент Grpc 、 |/Клиент Zipkin/Jaeger (opentracking) |/、
HTTP-клиент//、 |/Клиент Elasticsearch 、
Клиент консула |/、 |/Клиент Etcd |/、 |/Компонент AMQP |/、 |/Центр конфигурации Apollo |/、 |/Управление конфигурацией приложений Alicloud ACM 、
Центр конфигурации Etcd 、
Ограничитель тока на основе токена алгоритм ведра 、
Универсальный пул соединений 、
Предохранитель 、
Генерация документов Swagger 、
Трекер Swool 、
Движок Blade и Smarty view |/、 Генератор глобальных идентификаторов Snowflake
И другие компоненты избавляют от необходимости внедрять соответствующую версию.
Hyperf также предоставляет Контейнер для инъекций зависимостей на основе psr-11
、 аннотации
、 AOP, ориентированный на аспекты
программирование
、 Промежуточное программное обеспечение на основе psr-15
、 Пользовательский процесс
| Менеджер событий на основе psr-14 、
Redis| очередь сообщений rabbitmq/| 、 Автоматическое кэширование модели
、 | Кэш на основе psr-16 、
Запланированная задача второго уровня Crontab | Интернационализация перевода
、 Валидатор валидации
И другие очень удобные функции, отвечающие богатым техническим и бизнес-сценариям, из коробки.