Symlex стремится упростить гибкую веб -разработку, предоставляя рабочую систему, которая способствует лучшим практикам по примеру:
С момента своего первоначального выпуска в 2014 году он оказался хорошо подходящим для быстрого построения микросервисов, CLI и одностраничных приложений. Он поставляется в комплекте с рабочими примерами от тестирования до форм и абстракции базы данных. Просто удалите то, что вам не нужно.
Ядро крошечное и создает только сервисный контейнер для начальной загрузки вашего приложения в его контексте. Использование одного контейнера для конфигурации и инъекции зависимости уменьшает сложность и приводит к улучшению производительности по сравнению с другими рамками. Это также мешает разработчикам бездумно устанавливать пучки без их понимания. Результатом является менее раздутие и более простой, более поддерживаемый и тестируемый код, который является фундаментальным для гибкой разработки.
Простые классы используются везде, где это возможно, чтобы избежать блокировки поставщиков и включить повторное использование независимого кода Framework. Смотрите компромисс.md.
Вы можете объединить бэкэнд на основе PHP с любой библиотекой JavaScript или клиентом REST. Передняя котельная пластина для вашего удобства и выпускает вас прямо для создания впечатляющих одностраничных приложений с WebPack и Vuetify, см. Demo.symlex.org. Рабочий пример для приложений командной строки также включен.
Наша полная структура документации можно найти на docs.symlex.org. Тузи Лю поддерживает для нас китайский перевод.
Примечание.
Прежде чем начать, убедитесь, что в вашей системе установлены PHP 7.3+, Composer и Docker (Howto для Mac OS X). Запустите get-composer.sh для установки composer локально на Linux. Вместо использования Docker вы можете настроить собственную среду выполнения, основанную на существующем DockerFile. Кроме того, вам понадобится база данных плюс Nodejs и NPM для построения фронта.
Шаг 1: Запустите composer , чтобы создать новый проект Symlex:
composer create-project symlex/symlex myapp
Композитор попросит значения конфигурации для генерации app/config/parameters.yml для вас.
Убедитесь, что storage/cache можно записать, чтобы файлы кэша могли быть созданы приложением.
Шаг 2: Start Roadrunner и Mariadb с помощью docker-compose :
cd myapp
docker-compose up
Примечание. Эта конфигурация предназначена только для целей тестирования и разработки, см. Комментарии в Docker-compose.yml для деталей. Вам может потребоваться настроить его, если вы запустите Docker с другим пользователем по соображениям безопасности. На OS X текущий выпуск Docker действительно медленный в выполнении PHP из файловой системы хоста. docker-compose up -d Runs Docker в фоновом режиме, но в этом случае вы не увидите полезных сообщений журнала.
Шаг 3: Пусть инициализировать базу данных и создать для вас передние компоненты:
make terminal
make all database
Чтобы убедиться, что все работает, запустите make test .
Примечание. Вы также можете использовать этот подход для выполнения других команд CLI позже. Сделайте предварительную установку в типичных средах разработки UNIX-в противном случае вам, возможно, придется получить его сначала, например, установив инструменты командной строки XCode на OS X через xcode-select --install или добавив пакет build-base или build-essential на Linux. Makefile содержит список всех целей.
После успешной установки откройте сайт по адресу http: // localhost: 8081/и войдите в систему как [email protected] , используя пароль passwd .
Файлы YAML, расположенные в app/config , настраивают приложение на основе параметров и сервисов. Основными файлами конфигурации являются app/config/web.yml и app/config/console.yml .
Если вы добавите localhost-debug к вашим /etc/hosts и получите доступ к сайту, он будет загружаться в режиме отладки (вы увидите трассу стека и другую информацию отладки на страницах ошибок).
Пользовательский интерфейс Mailhog доступен по адресу http: // localhost: 8025/. Его можно использовать для автоматического приема и просмотра почтовых почт, например, когда создаются новые пользователи.
Если вы хотите создать более легкое приложение, посмотрите на другие наши примеры:
Полная документация: https://docs.symlex.org/en/latest/framework/
Symlex теперь включает в себя Roadrunner - высокопроизводительный сервер приложений PHP - в качестве альтернативы Nginx. Он будет автоматически загружен при создании изображения Docker.
Наши инструкции по установке для Symlex> = 4.4.0 не будут работать для предыдущих выпусков, поскольку они по-прежнему используют NGINX и PHP-FPM. Вместо web и php теперь существует одна служба app , работающая от Roadrunner. Если вы предпочитаете Nginx, вы можете использовать более старый выпуск или скопировать предыдущую конфигурацию в новый релиз. Некоторые из наших примеров также используют Nginx.
Symlex поддерживается Майклом Майером и стремится упростить гибкую веб -разработку, предоставляя рабочую систему, которая способствует примеру лучших практик. Майкл выпустил свою первую PHP -структуру в 2001 году и в прошлом работал с различными поставщиками крупных рамок. Создание этого было бы невозможно без большой предварительной работы других разработчиков. Спасибо тем, кто внес свой вклад!
Выбор является врагом производительности. Иными словами, если ваше решение делает все, и не имеет никаких мнений ни о чем, то оно ничего не решает. - Асим Аслам
Не стесняйтесь отправлять электронную почту [email protected], если у вас есть какие-либо вопросы, нужны коммерческая поддержка или просто хотите поздороваться. Мы приветствуем взносы любого рода. Если у вас есть ошибка или идея, прочитайте наше руководство, прежде чем открыть проблему.
Очевидно, что производительность PHP Framework в основном зависит от строк кода, которые должны быть выполнены для каждого запроса. В то время как Symlex был разработан, чтобы быть простым и худым, хорошая производительность-очень важный побочный продукт этого подхода.
Лучший код - это не код. Там, где нет кода, нет ошибок. Нет API, чтобы учиться. Нет неловкого пользовательского интерфейса. Лучшими рефактовами являются делеции. - Эрик Эллиотт
Как опубликовано phpbenchmarks.com, запросы REST более чем на 40% быстрее по сравнению с другими общими рамками PHP:
Обратите внимание, что время отклика было измерено в полностью оптимизированном производственном режиме на Fast Server Adware с 5 одновременными запросами. На практике различия могут быть намного больше с точки зрения абсолютного времени. Потребление памяти также следует учитывать:
Почему ты должен заботиться? Во -первых, вашим пользователям это понравится. Как правило, 100 мс - это ограничение, когда они чувствуют, что система реагирует мгновенно, что означает, что никакой особой обратной связи не требуется, кроме как для отображения результата. Общее время отклика также включает в себя сеть (~ 25 мс), браузер и другие накладные расходы, которые оставляют лишь небольшую часть этих 100 мс для реализации реальной бизнес -логики. Во -вторых, вы сэкономите много денег для серверной инфраструктуры, и разработчики становятся более продуктивными, поскольку тесты работают быстрее.
Symlex был запущен в 2014 году как простой Silex Cowerplate, так как сам Silex не поставляется с «стандартным изданием», которое указывает вам в правильном направлении. Использование Silex вместо Symfony было рекомендовано Sensiolabs (создатели обеих рамок) в качестве легкой альтернативы Symfony + Fosrestbundle для быстрого создания высокопроизводительных служб отдыха и одностраничных веб-приложений.
Вскоре было замечено, что Pimple - контейнер обслуживания, который поставляется с Silex - чувствует себя громоздким для разработчиков из Symfony и затрудняет повторное использование существующего кода. Кроме того, многие примеры кода Silex и даже приложения реального мира получали доступ к сервисному контейнеру из всех частей кода (не только сама структура), которые обходят инверсию управления и приводят к неловкости тестируемости. Следовательно, Symlex способствует строгому использованию инъекции зависимостей и объединяет удобство полноценного сервисного контейнера со скоростью микро-рамок.
Сегодня Symlex имеет свой собственный компонент маршрутизации (на основе Symfony 4) и больше не использует Silex. Структура оказалась полезной для большого количества различных приложений. Некоторые из них были основаны на обычном ядре Symfony и делали изменение, потому что они утонули в сложности и страдали от времени отклика, значительно выше 30 секунд в режиме разработки. Symlex вернул их в путь без больших изменений в существующей базе кода.
Symlex-это некоммерческий проект, работающий полностью добровольцами. Вы можете поддержать нас через спонсоров GitHub, особенно если вам нужна помощь с использованием нашего программного обеспечения. Они будут соответствовать каждому пожертвованию в первый год.
Пожалуйста, оставьте звезду, если вам нравится этот проект, он обеспечивает дополнительную мотивацию для продолжения. Большое спасибо! <3