Slimphp 4 Skeleton MVC приложение
Документацию для версии этой структуры на основе SLIMPHP 3 можно найти здесь.
Это шаблонное применение веб-применения (питание от SLIMPHP 4), которое можно расширить для создания более сложных веб-приложений.
Хотя нет необходимости иметь экспертное понимание структуры Slimphp 4 (https://www.slimframework.com/docs/v4/), чтобы создать веб-приложения с помощью этой шаблонной платформы приложения, такое понимание поможет в максимизации способностей этого шаблона.
Особенности / преимущества использования Slim MVC Framework
Он добавляет структуру модели View-Controller к вашему веб-применению. На самом деле, действительно больше функциональности вида контроллера с модельной папкой, предоставленной для размещения ваших классов моделей (оставляя вам ответственность за выбор того, какая библиотека доступа ORM / базы данных соответствует вашим потребностям или наиболее удобна).
Предоставляет скелетную папку / структуру каталогов для вашего приложения:
./path/to/newly/created/app
|-- config/
|-- languages/
| |-- en_US.php
| `-- fr_CA.php
| |-- app-settings.php
| |-- app-settings-dist.php
| |-- dependencies.php
| |-- env.php
| |-- env-dist.php
| |-- ini-settings.php
| `-- routes-and-middlewares.php
|
|-- logs/
|
|-- public/
| |-- css/
| |-- images/
| |-- js/
| `-- index.php
|
|-- src/
| |-- controllers/
| |-- layout-templates/
| |-- models/
| |-- views/
| `-- AppErrorHandler.php
|
|-- tests/
|
|-- tmp/
|
|-- vendor/
|
|-- .gitignore
|-- composer.json
|-- composer.lock
`-- README.md
Предоставляет некоторые вспомогательные функции, такие как SMVC_URITOSTRING ( PSR HTTP Message URIInterface $ URI) , SMVC_ADDQUERYSTRPARAMTOURI ( PSR HTTP Message URIInterface $ URI, $ PARAM_NAME, $ PARAM_VALUE) и т. Д. В Defult Global Spective и string -функции helper in the SlimMvcToolsFunctionsStr Пространство имен
Предоставляет автоматическую схему маршрутизации для картирования URL-адресов запроса для методов в классах контроллеров, которые являются подклассами SlimMvcToolsControllersBaseController . Вам не нужно определять какие -либо маршруты для вашего приложения, если вы придерживаетесь использования контроллеров, которые совместимы со схемой маршрутизации
- Также поддерживает работу с использованием только чистой тонкой функциональности PHP (то есть вы можете вручную / явно определить все или некоторые из маршрутов (каждый из которых может или не может использовать классы контроллера в качестве обработчиков маршрутов) и средние военные.
Ships whith a BaseController class (ie SlimMvcToolsControllersBaseController ) that provides methods for authentication (login, logout & checking authentication status), listing all methods in all controller classes in an application that can be automatically routed to if the automatic MVC routing is enabled, forcing HTTP 400, 401, 403, 404, 405, 410, 500 & 501 Ответы и методы для визуализации PHP и файлов макета с использованием легкого веса и легко расширяемого класса Rotexsoft filerenderer renderer. Взгляните на класс для полного списка методов, которые можно использовать в ваших приложениях.
Предоставляет сценарий командной строки для создания классов контроллера (которые расширяют SlimMvcToolsControllersBaseController или любой из его потомков).
-
./vendor/bin/smvc-create-controller на *nix-like oses и .vendorbinsmvc-create-controller.bat в Windows- Примечание:
./vendor/bin/smvc-create-controller-wizard является интерактивной версией ./vendor/bin/smvc-create-controller
Корабли с очень минимальным количеством зависимостей композитора / упаковки (все из которых используются SlimMvcToolsControllersBaseController ), чтобы вы могли включать только дополнительные зависимости, которые соответствуют конкретным потребностям вашего приложения. Тем самым снижая возможность наличия неиспользованных / ненужных зависимостей в вашем приложении. В этой структуре используются следующие пакеты:
- Slim Framework Версия 4: Для маршрутизации HTTP -запросов на методы действия в классах контроллера (или другие Callables, приемлемые SLIM для ответа на запросы, которые соответствуют определенным маршрутам) и отправке ответов HTTP на клиенты
- Файл -рендеринг: для рендеринга макета PHP и просмотра файлов (в основном содержит смесь PHP, HTML, CSS & JavaScript), которое будет отправлено обратно в качестве HTML в HTTP -образных телах для клиентов. Простой текст, JSON, XML и другие не HTML-ответы могут быть излучены непосредственно из методов действия контроллера (им не нужен этот визуализатор)
- Vespula Auth: легкий пакет аутентификации, который используется по умолчанию в систему и входе в систему в базовом режиме для аутентификации пользователей. SQLite DB в памяти используется для аутентификации по умолчанию, вам следует переключиться на надлежащий реляционный DB, такой как MySQL (с которым этот пакет также может авторитурить) против)
- Vespula Locale: еще один легкий пакет для управления локализованными строками в этой структуре. Такие вещи, как сообщения об ошибках во время входа в систему, управляются с использованием экземпляра этого пакета для отображения этих сообщений на желаемом языке, выбранном пользователем. Американский английский и канадский французский - это два языка, которые эта структура поддерживает из коробки. Другие локальные файлы могут быть добавлены в папку ./config/languages , и их код локализации должен быть добавлен в контейнер ( $ container [containerkeys :: valive_locales] ), и ссылка для этого языка должна быть добавлена в шаблон макета с помощью соответствующей строки запроса, чтобы пользователи, которые нажимают на него, можно установить в качестве языка, когда он взаимодействует с применением, построенным в рамках этого основания, построенным в рамках этой основы.
- Журнал Vespula: регистратор PSR-3, который используется на протяжении всей этой структуры для регистрации различных событий (например, успешные события входа и входа в систему и т. Д.). Это легче, чем другие пакеты, такие как монолог и довольно приличный.
- Pimple: простой контейнер впрыскивания зависимости, который используется для питания slimmvctools inculer (контейнер для PSR-11, который поставляется с этой структурой)
- Nyholm PSR7: быстрая реализация PHP7 PSR-7, введенную в Slimphp в этой структуре
- NYHOLM PSR7 Server: Helper Classe для обработки запросов сервера PSR-7, также используемых Slimphp в этой структуре
Вы также должны посмотреть на публичные методы, доступные в slimmvctools Controllers BaseController, которые будут расширяться все ваши приложения, и которые будут удобны в ваших приложениях, таких как Forehttp ### , GetResponseObjforloginredifectionifnotloggedin , Isloggedin , Makelink , rendlayout & renderview
Стремится строго придерживаться сообщений HTTP PSR-7 и интерфейсов PSR/контейнеров , чтобы облегчить использование различных реализаций объектов запроса и ответа PSR-7 и контейнеров, соответствующих PSR/контейнерам, контейнеров
Требования
- PHP 7.2+ (для версии 3.x) или PHP 7.4+ (для версии 4.x) или PHP 8.1+ (для версии 5.x)
- Расширение PDO SQLite (3) для аутентификации в непроизводственных средах
- Композитор (https://getcomposer.org)
Документация
- Quick Start Guide
- Функциональность MVC
- Использование реального мира: создание приложения каталога фильма
- Все примеры командной строки предполагают, что вы изменили каталог на корневую папку вашего недавно созданного приложения.
- Пожалуйста, отправьте проблему или запрос на привлечение, если вы найдете какие -либо проблемы с документацией.
Разветвление
Это ветви в этом репозитории:
- Master: содержит код для последней основной версии этой структуры
Всегда должна быть тонкая ветвь-#-Edition-Aversions-XX, которая будет синхронизироваться с Master, и из которой будут помечены последние основные версии. Composer.json в этом филиале потребует самой последней стабильной версии Rotexsoft/Slim-Skeleton-MVC-Tools, в отличие от версии Dev-Master , которая всегда будет требоваться в Composer.json в главной ветви.
- SLIM-4-Edition-Aversions-5.x: содержит код для 5.x версии этого пакета (в настоящее время синхронизируется с Master, пока более новая версия 6.x не начнет разрабатывать на Master)
- SLIM-4-Edition-Aversions-4.x: содержит код для версии 4.x этого пакета. Никаких новых функций, только исправления ошибок приняты.
- Slim-3-Edition: содержит код для версии этого пакета 3.x. Никаких новых функций, только исправления ошибок.
- 1.x: содержит код для 1.x версии этого пакета. Заброшенный.
- Project-Website: содержит код для веб-сайта Documetation для этого проекта (https://rotexsoft.github.io/slim-cleleton-mvc-app/).
- Филиал Project-Website был создан в мае 2024 года и в настоящее время разрабатывается. Удаляет это уведомление, когда веб -сайт документации будет готов к работе. На данный момент продолжайте читать документацию в филиале для версии этой структуры, которую вы в настоящее время используете.
Проблемы
- Пожалуйста, отправьте проблему или запрос на привлечение, если вы найдете какие -либо проблемы с этим приложением скелета.
- Если вы предлагаете улучшить, сначала создайте проблему, чтобы ее можно было обдумать, прежде чем отправиться в подачу запроса на привлечение.