Versão 2.0.2-2024-12-13
Uma estrutura simples de aplicação da web que implementa o padrão arquitetônico do Model-View-View-Controller (MVC).
composer require "simplesamlphp/simplesamlphp:^2.2" )A UMVC suporta módulos, consulte Configuração/componentes.
A estrutura suporta testes funcionais com seu plug -in da estrutura. O codecepção instalado globalmente deve ser compatível com necessário (atualmente v3.1.2)
A UMVC suporta CLI. Você pode criar seus próprios comandos. Os comandos embutidos são:
Executar comandos como php app $command $action $parameters
A estrutura pode ser incluída em seu projeto com o compositor. Run composer require uhi67/umvc:dev-master . O projeto novo e vazio pode ser criado usando composer create-project --prefer-dist uhi67/umvc-app name . Isso fornecerá um novo aplicativo vazio usando a estrutura UMVC no diretório nomeado. Escolha qualquer nome que você preferir.
AVISO: Esta parte está em construção. Saiba mais sobre as classes mencionadas no docblock da definição de classe.
composer.json do seu aplicativo e inclua uh67/umvc , por exemplo, composer init --name myname/myapp --require uhi67/umvc:* .composer update .vendor/uh67/umvc/app para a raiz do seu aplicativo. Este é o lançador dos comandos da CLI.vendor/uh67/umvc/www/index.php e .htaccess no diretório www do seu aplicativo. Este é o roteador da interface da web.config/config.php , consulte o modelo no vendor/uh67/umvc/config/config-template.php .runtime gravável pelo servidor da web para colocar arquivos temporários.www/assets gravável pelo servidor da web para colocar arquivos de ativos em cache de vários componentes. controllers DIR, usando appcontrollers namespace e os derivam do uhi67umvcController .views , no formato simples de PHTML, e organize -as de acordo com views/controller/action.php Estrutura.models . Os modelos de banco de dados são uhi67umvcModel , os modelos sem banco de dados são uhi67umvcBaseModel . migrations .views/layouts . As visualizações podem chamar outras visualizações parciais.commands , derivando da classe uhi67umvcCommand . Existem algum comando embutido na estrutura. O comando php app lista todos os comandos disponíveis, ambos internos e personalizados.messges/la.php em que "LA" é o idioma para o qual deseja traduzir. Todos os componentes, a maioria das classes UMVC, incluindo a própria classe de aplicativos, é um uhi67umvcComponent . Component implementa os recursos da propriedade : Magic Getter e Setter usa métodos GetProperty e SetProperty. Component é configurável : o construtor aceita uma matriz de configuração contendo valores para propriedades públicas.
MySqlConnection - para conectar -se ao banco de dados. Inclui SQL Query Builder. Atualmente, a única implementação da Connection .FileCache - a única implementação do CacheInterface .SamlAuth - A única implementação para AuthManager .L10n -Localização simples, padrão-incluído automaticamente, traduz apenas mensagens UMVC.L10nFile -A localização baseada em arquivo para traduzir mensagens do seu aplicativo. Form -Um widget com exibição embutida para exibir e processar formulários HTML usando seus modelos.Grid (widget, mas a visualização embutida ainda está ausente)-para exibir listas de modelos paginados e filtrados.Query - representa uma consulta SQL parametrizada e flexível na estrutura do PHP. O comando SQL pode ser construído a partir dele.Request - representa a solicitação HTTP, pode ser usada para buscar parâmetros GET e POST.Session - representa a sessão atual do PHP, pode ser usada para obter e definir variáveis. O script de entrada única para o aplicativo da Web é o www/index.php . Respectivamente, o script de entrada única para o aplicativo da CLI é o arquivo app . Ambos devem ser copiados para o diretório de aplicativos do vendor/uhi67/umvc/ diretório.
As regras www/.htaccess redirecionam todas as solicitações não achadas para o www/index.php . No entanto, os ativos estáticos são servidos diretamente no diretório www. Saiba mais sobre como servir os ativos da biblioteca mais tarde.
O index.php inicializa o automóvel, carrega a configuração principal, cria o objeto principal (classe definida na configuração, geralmente uhi67/umvc/App ou seu descendente). A configuração principal segue as regras do Component configurável.
Todo o URL formado como https: // myapp/acontroller/anaction é processado da seguinte maneira:
uhi67/umvc/App analisa a solicitação, calcula a classe de controlador real (derivada do uhi67/umvc/Controller ) para usar, cria o controlador e executa o método de ação solicitado. Como no exemplo acima, o AController refere -se à sua classe de controlador no diretório do seu controllers como Acontrollercontroller , e a anação refere -se ao método de ação (como Actionanaction ).
Se o nome da ação estiver ausente no URL, o actionDefault será executado. Se o nome do controlador também estiver ausente, o MaiorController configurado será usado. Também é possível criar um URL com um nome de ação do controlador padrão sem especificar o nome do controlador - a única restrição que você não pode ter um controlador com o mesmo nome que esta ação.
O comando Al Cli formado como php app acontroller/anaction é processado da seguinte maneira:
uhi67/umvc/App analisa a solicitação, calcula a classe de controlador real (derivada do uhi67/umvc/Command ) para usar, cria o controlador e executa o método de ação solicitado. Como no exemplo acima, o AController refere -se à sua classe de controlador no diretório commands como Acontrollercontroller , e o ANAction refere -se ao método de ação (como Actionanaction ). Os comandos embutidos podem ser executados da mesma maneira. Um comando com o mesmo nome em nosso aplicativo substitui o comando interno.
As partes da solicitação atual de URL podem ser acessadas como:
Para criar um novo URL usando nomes de controlador e ação e parâmetros optioanl Qurey, use um dos seguintes:
Nos seus arquivos de visualização, você pode consultar seus ativos estáticos localizados no diretório www de maneira estática, por exemplo <link href="/assets/css/app.css" rel="stylesheet"> . Pelo contrário, se você deseja se referir a um arquivo de ativo localizado em algum lugar da biblioteca de fornecedores criada com compositor, poderá usá-los da seguinte maneira:
<script src="<?= $this->linkAssetFile('npm-asset/bootstrap/dist', 'js/bootstrap.bundle.min.js') ?>"></script> A função linkAssetFile copia todos os arquivos do diretório no primeiro argumento no diretório de cache de ativos sob o www e cria um URL válido para o arquivo no segundo argumento. Nota: O primeiro argumento identifica um pacote de ativos. Somente a primeira chamada para qualquer pacote copia os arquivos. Todas as chamadas subsequentes para o mesmo pacote gera apenas o link para o arquivo.
O cache do ativo é esvaziado pelo comando composer install . O cache de ativos é sempre www/asset/cache e não é configurável.
...
Este repositório contém um aplicativo de teste interno para testes de unidade de codecepção interna. O único objetivo do aplicativo de teste no diretório tests é poder executar testes de unidade e não um aplicativo de amostra para começar.
git clonecomposer updatetests/_data/test-config.php com base no modeloumvc-test de acordo com as configurações do banco de dados em tests/_data/test-config.phpphp vendor/bin/codecept run unit para testes de unidadeMais testes de unidade estão chegando ...
Um ambiente de teste dockerizado embutido pode ser usado para testar com diferentes versões de PHP e banco de dados.
Passos:
tests/docker-compose.yml (faça clones deste arquivo de modelo)tests/docker/Dockerfile (as etapas de instalação da extensão podem mudar)tests/.envdocker compose up --build -d (nos tests dir)docker exec -it umvc-php-1 php vendor/bin/codecept run unit