Версия 2.0.2-2024-12-13
Простая структура веб-применения, реализующая архитектурный паттерн модели-контроллера (MVC).
composer require "simplesamlphp/simplesamlphp:^2.2"UMVC поддерживает модули, см. Конфигурацию/компоненты.
Framework поддерживает функциональное тестирование с помощью плагина Framework. Установленная глобальная кодекция должна быть совместима с требуемой (в настоящее время v3.1.2)
UMVC поддерживает CLI. Вы можете создать свои собственные команды. Встроенные команды:
Запустить команды как php app $command $action $parameters
Структура может быть включена в ваш проект с композитором. Запустить composer require uhi67/umvc:dev-master . Новый, пустой проект может быть создан с помощью composer create-project --prefer-dist uhi67/umvc-app name . Это предоставит вам новое пустое приложение, используя Framework UMVC в названный каталог. Выберите любое имя, которое вы предпочитаете.
ПРЕДУПРЕЖДЕНИЕ: Эта часть находится в стадии строительства. Узнайте больше об упомянутых классах в Docblock определения класса.
composer.json вашего приложения и включите uh67/umvc , EG composer init --name myname/myapp --require uhi67/umvc:* .composer update .vendor/uh67/umvc/app в корне вашего приложения. Это пусковая установка команд CLI.vendor/uh67/umvc/www/index.php и .htaccess в каталог вашего приложения www. Это маршрутизатор веб -интерфейса.config/config.php , см. Шаблон в vendor/uh67/umvc/config/config-template.php .runtime , чтобы разместить временные файлы.www/assets различных компонентов, для размещения файлов кэшированных активов различных компонентов. controllers , используя пространство имен appcontrollers и выведите их из uhi67umvcController .views , в простом формате PHTML и организуйте их в соответствии с структурой views/controller/action.php .models . Модели базы данных- uhi67umvcModel , модели без базы данных- uhi67umvcBaseModel . migrations .views/layouts . Просмотры могут вызвать другие частичные представления.commands , вытекающих из uhi67umvcCommand Class. В рамках есть встроенная команда. Команды php app перечисляют все доступные команды, как встроенные, так и пользовательские.messges/la.php , где «la» - это язык, на который вы хотите перевести. Все компоненты, большинство классов UMVC, включая сам основной класс приложений, представляют собой uhi67umvcComponent . Component реализует свойства свойства : Magic Getter и Setter используют методы GetProperty и SetProperty. Component настраивается : конструктор принимает массив конфигурации, содержащий значения для публичных свойств.
MySqlConnection - чтобы подключиться к базе данных. Включает в себя SQL -Builder. В настоящее время единственная реализация Connection .FileCache - единственная реализация CacheInterface .SamlAuth - единственная реализация для AuthManager .L10n -Простая локализация, по умолчанию автоматически включена, переводит только сообщения UMVC.L10nFile -локализация на основе файлов для перевода сообщений вашего приложения. Form -виджет со встроенным представлением для отображения и обработки форм HTML с использованием ваших моделей.Grid (виджет, но встроенное представление все еще отсутствует)-для отображения лицензионных списков моделей.Query - представляет параметризованный и гибкий запрос SQL в структуре PHP. Команда SQL может быть построена из нее.Request - представляет HTTP -запрос, может использоваться для получения параметров GET и публикации.Session - представляет текущий сеанс PHP, может использоваться для получения и установки переменных. Единственным сценарием записи для веб -приложения является www/index.php . Соответственно, единичным сценарием записи для приложения CLI является файл app . Оба они должны быть скопированы в ваш каталог приложений от vendor/uhi67/umvc/ Directory.
Правила www/.htaccess перенаправляют все неуверенные запросы на www/index.php . Тем не менее, статические активы обслуживаются непосредственно из каталога www. Узнайте больше о обслуживании библиотечных активов позже.
index.php инициализирует автозагрузчик, загрузите основную конфигурацию, создает основной объект (класс, определенный в конфигурации, обычно uhi67/umvc/App или его потомок). Основная конфигурация следует правилам настраиваемого Component .
Весь URL -адрес, сформированный как https: // myapp/acontroller/anaction обрабатывается следующим образом:
uhi67/umvc/App Проанализирует запрос, вычисляет фактический класс контроллера (полученный из uhi67/umvc/Controller ) для использования, создает контроллер и запускает запрошенный метод действия. Как и в примере выше, Acontroller относится к вашему классу контроллеров в вашем каталоге controllers как AcontrollerController , а ANACTION относится к методу действия (как ActionAnaction ).
Если имя действия отсутствует в URL -адресе, actionDefault будет запущен. Если имя контроллера также отсутствует, будет использоваться настроенный MainController . Также возможно создать URL -адрес с именем действия контроллера по умолчанию без указания имени контроллера - единственное ограничение, которое вы не можете иметь контроллер с тем же именем, что и это действие.
Команда Al CLI, сформированная как php app acontroller/anaction обрабатывается следующим образом:
uhi67/umvc/App Проанализирует запрос, вычисляет фактический класс контроллера (полученный из uhi67/umvc/Command ) для использования, создает контроллер и запускает запрошенную метод действия. Как и в приведенном выше примере, Acontroller относится к вашему классу контроллера в вашем каталоге commands Acontrollercontroller , а ANACTION относится к методу действия (как ActionAnaction ). Встроенные команды могут выполняться так же. Команда с тем же именем в нашем приложении переопределяет встроенную команду.
Части текущего запроса URL можно получить как:
Чтобы создать новый URL -адрес с использованием имен контроллера и действий, а также параметры Optioanl Qurey используйте одно из следующих действий:
В файлах вашего представления вы можете направить свои статические активы, расположенные в каталоге www статическим способом, например <link href="/assets/css/app.css" rel="stylesheet"> . Напротив, если вы хотите ссылаться на файл активов, расположенный где-то в библиотеке поставщиков, созданной композитором, вы можете использовать их таким образом:
<script src="<?= $this->linkAssetFile('npm-asset/bootstrap/dist', 'js/bootstrap.bundle.min.js') ?>"></script> Функция linkAssetFile копирует все файлы из каталога в первом аргументе в каталог кэша активов в рамках www и создает действительный URL -адрес для файла int второй аргумент. Примечание. Первый аргумент идентифицирует пакет активов. Только первый вызов для любого пакета копирует файлы. Все последующие вызовы в одном и том же пакете генерируют только ссылку для файла.
Кэш активов опорожняется командой composer install . Кэш активов всегда www/asset/cache и не настраивается.
...
Этот репозиторий содержит встроенное тестовое приложение для внутренних тестов блока кодекса. Единственная цель тестового приложения в каталоге tests - иметь возможность запускать модульные тесты, а не применение приложения для начала.
git clonecomposer updatetests/_data/test-config.php на основе шаблонаumvc-test в соответствии с настройками базы данных в tests/_data/test-config.phpphp vendor/bin/codecept run unit для единичных тестовПриходит больше модульных тестов ...
Встроенная среда для тестирования может быть использована для тестирования с различными версиями PHP и базы данных.
Шаги:
tests/docker-compose.yml (создайте клоны этого файла шаблона)tests/docker/Dockerfile (этапы установки расширения могут измениться)tests/.envdocker compose up --build -d (в режиме tests )docker exec -it umvc-php-1 php vendor/bin/codecept run unit