Sugerimos fortemente nossa estrutura para blogs pessoais, agências de notícias e desenvolvimento da API REST.
Assim como qualquer outra estrutura PHP, iniciamos este projeto com base na arquitetura do MVC com os serviços em destaque como $Add->Loader , REST API , SharedLayouts , Middlewares e conceitos de segurança predefinidos. Tudo no simplista é tão simples quanto instalá -lo no seu servidor!
Faça o download deste repositório:
composer create-project miladxandi/simplist
Lembre -se de que sua versão PHP deve ser superior a 7 e o endereço de solicitação local deve ser definido:
public_html/
Depois disso, você deve definir o nome de usuário e a tabela do seu banco de dados! Em um projeto local para o primeiro uso, esses valores devem ser assim:
Tabela: Simplist_simplist
Nome de usuário: root
Senha: vazia (sem valor ou uma string vazia)
Você pode alterar esses valores indo para modelar a camada e alterá -los em conexão.phtml na pasta Core/Configurações ou vá para este endereço:
Núcleo/configurações/conexão.phtml
Nota: Existe um arquivo de tabela SQL na pasta "Recursos" que você pode importar facilmente para o seu banco de dados local ou online MySQL
Até que você esteja trabalhando em um diretório de trabalho local, o protocolo HTTPS está desligado, mas se você deseja carregá -lo no seu servidor, o protocolo HTTPS pode ser ativado fazendo o "SecureProtocol" true na pasta Core, na pasta Configurações, você pode encontrar um arquivo de roteamento ou ir para este endereço:
Núcleo/configurações/roteamento.phtml
Você pode alterar o $SecureProtocol = false; para $SecureProtocol = true;
Está completamente instalado e pronto para uso.
Para definir suas próprias rotas, vá para este endereço:
Rota/configuração/rotas.phtml
Existe apenas um retorno de matriz que retorna o URL como uma chave de matriz e configurações como seus valores. Cada nova rota deve criar exatamente a partir deste modelo:
'/aboutus' => [
'target'=>'Main.Home.Aboutus',
'get'=> true,
'post'=> false,
'middleware'=>'Main.Home.Aboutus'
'important'=>false
],
Deixe -me descrevê -lo linha por linha:
'/aboutus'
Este é um endereço da Web que processará o endereço solicitado pelos controladores e com os meios médios e é a chave de uma matriz. Nota: Nosso sistema de roteador não é sensível ao minúsculo, mas você deve definir rotas em minúsculas.
'target'=>'Main.Home.Aboutus'
Isso significa que o controlador de destino é "HomeController" na pasta "principal" da pasta dos controladores e, depois de solicitar esse endereço "sobreus", será chamado como escreveu no final do controlador
'target'=>'Main.Home.Aboutus'. Além disso, você pode processar em umaQuerry Stringobtendo -a, em seus parâmetros de função. Você também pode fazer alguma solicitação ao banco de dados nos arquivos do controlador. Os valoresQuerry Stringou banco de dados devem ser inseridos em uma matriz com o nome de$Viewbag. Você pode enviá -los para sua página da web por este código:View::Process("Main.Home.Post",$Viewbag);Agora está acessível a partir do arquivo "View" solicitado em "public_html/view/...". Em vez de escrever seus códigos lógicos nos controladores, incentivamos você a colocá -los na pasta "lógica" na pasta do modelo. Existem ótimos contratos nesta pasta para ajudá -lo a desenvolver seu negócio melhor do que nunca.
NOTA: Os controladores e os médios precisam criar com extensões exatamente Controller.phtml ou Middleware.phtml , mas devem ser escritas aqui sem essas extensões. Por exemplo, temos "HomeController", mas podemos acessá -lo escrevendo apenas seu nome sem a palavra "controlador": "home"
'get'=> true ou 'post'=> false
Estes são os métodos de solicitação de servidor geral que podemos definir aqui. Se você deseja negar qualquer solicitação de postagem, basta alterar o valor
postparafalse. Em seguida, você pode ver todas as solicitações com o método de solicitaçãoPOST, mostrará um erro "Solicitar método não permitido".
'middleware'=>'Main.Home.Aboutus'
Quando não houve conflito com o URL solicitado e o método de solicitação definida, antes de lançar controladores, temos algum middleware para fazer algumas validações. Ele pode usar para verificar cookies de segurança ou opções de idioma do site e etc. Todo middleware deve retornar
trueem sua tecla "Status" para passar no exame. O Middlewares também pode processar em umaQuerry Stringobtendo -a, em seus parâmetros de função. Assim como os controladores, precisamos do seu nome puro sem a palavra "middleware".
'important'=>false
Como você lê antes, nosso sistema não é sensível ao caso por padrão, mas às vezes você precisa processar em uma URL sensível ao caso para validar alguns tokens e dados sensíveis ou qualquer outro motivo. Você pode alterar esta regra do nosso sistema de roteamento usando
'important'=>trueou desativá -la por'important'=>false. NOTA: Esta chave na matriz de roteamento não é necessária.
Para definir suas próprias rotas, vá para este endereço:
Route/Setting/Api.phtml
Existe apenas um retorno de matriz que retorna o URL como uma chave de matriz e configurações como seus valores. Cada nova rota deve criar exatamente a partir deste modelo:
'/api' => [
'target' => 'Api.Home.Index',
'allowed'=> 'get',
'blocked'=> 'DELETE',
'middleware'=>'Main.Home.Index',
'important'=>false
]
Deixe -me descrevê -lo linha por linha:
'/api'
Este é um endereço da Web para ligar para a API e processará o serviço solicitado pelos controladores e com usuários médios e é a chave de uma matriz. Nota: Nosso sistema de roteador não é sensível ao minúsculo, mas você deve definir rotas em minúsculas.
'target' => 'Api.Home.Index'
Isso significa que o controlador de destino é "HomeController" na pasta "API" da pasta dos controladores e, depois de solicitar esse endereço "o método do índice" será chamado como o controlador escrito no final do
'target' => 'Api.Home.Index'. Além disso, você pode processar em umaQuerry Stringobtendo -a, em seus parâmetros de função. Você também pode fazer alguma solicitação ao banco de dados nos arquivos do controlador. Em vez de escrever seus códigos lógicos nos controladores, incentivamos você a colocá -los na pasta "lógica" na pasta do modelo. Existem ótimos contratos nesta pasta para ajudá -lo a desenvolver seu negócio melhor do que nunca.
NOTA: Os controladores e os médios precisam criar com extensões exatamente Controller.phtml ou Middleware.phtml , mas devem ser escritas aqui sem essas extensões. Por exemplo, temos "HomeController", mas podemos acessá -lo escrevendo apenas seu nome sem a palavra "controlador": "home"
'allowed'=> 'get' ou 'blocked'=> 'DELETE'
Se você deseja deixar seu aplicativo funcionar em qualquer verbo http, poderá defini -lo aqui e separá -lo com uma vírgula para permitir que sua API use esses métodos. Por exemplo, queremos que nosso aplicativo interaja com nosso servidor com métodos
POSTeGET; Então, nós definimos os dois aqui assim:
'allowed'=> 'get,post'
Então, queremos restringir alguns verbos HTTP da solicitação ao nosso servidor, precisamos escrevê -los na parte
blockeddesta seção:
'blocked'=> 'DELETE'
Podemos escrever tantos verbos que queremos nessas seções.
'middleware'=>'Main.Home.Aboutus'
Quando não houve conflito com o URL solicitado e o método de solicitação definida, antes de lançar controladores, temos algum middleware para fazer algumas validações. Ele pode usar para verificar cookies de segurança ou opções de idioma do site e etc. Todo middleware deve retornar
trueem sua tecla "Status" para passar no exame. O Middlewares também pode processar em umaQuerry Stringobtendo -a, em seus parâmetros de função. Assim como os controladores, precisamos do seu nome puro sem a palavra "middleware".
'important'=>false
Como você lê antes, nosso sistema não é sensível ao caso por padrão, mas às vezes você precisa processar em uma URL sensível ao caso para validar alguns tokens e dados sensíveis ou qualquer outro motivo. Você pode alterar esta regra do nosso sistema de roteamento usando
'important'=>trueou desativá -la por'important'=>false. NOTA: Esta chave na matriz de roteamento não é necessária.
A biblioteca oLoad é um serviço simplista e definida para ajudar sua seção head HTML a ser mais limpa. Se você precisar usar esta biblioteca, precisará usar este código no seu arquivo de exibição no início:
<?php $Add = new CoreRequirementoLoad("../../..","Style/Main","Script/Main","Content/Main"); ?>
Neste código, você pode definir diferentes locais para seu JS, CSS, imagens e etc. Como permitimos que você personalize seu aplicativo, o ../../.. mostrará a raiz padrão desses conteúdos, mas você pode alterá -lo em todas as páginas que você está criando.
Este código pode importar bibliotecas ou imagens JS ou CSS externas.
Além disso, ele pode adicionar tipos exclusivos de arquivos ao seu projeto.
Este é um código completo para mostrar como você pode mostrar uma imagem em seu HTML:
<?php $Add->Loader("png","eastCloud","Shared",true,false,"eastCloud",24,24,"Style","Class"); ?>
Este código significa:
<?php $Add->Loader(Extension: "png",Name: "eastCloud",UniqueUrl: "Shared",Local: true,UniqueType: false,ImageAlt: "eastCloud",ImageWidth: 24,ImageHeight: 24,ImageStyle: "Style",ImageClass: "Class"); ?>
E criará uma tag completa <img> em qualquer lugar que ela usasse.
Você pode adicionar bibliotecas JS e CSS assim; Mas, exceto tudo após o argumento Local nesse método e suas próprias extensões como esta:
<?php $Add->Loader("css","Style",null,true); ?>
<?php $Add->Loader("js","Script",null,true); ?>
O argumento UniqueUrl permite definir bibliotecas ou imagens internas ou externas. Se não houver necessidade de definir UniqueUrl , deixe uma citação dupla vazia ( "" ) ou passe nulo como seu argumento. É nulo por padrão.
O argumento Local significa que a biblioteca ou imagem é um arquivo local ou não, o sistema usará a raiz padrão com o argumento especificado para encontrar esse arquivo se o Local fosse true .
O argumento UniqueType deve ser true se a extensão for tudo, exceto JS, CSS, PNG, JPEG, JPG e OIC. É false por padrão.
A extensão js criará completa <script src="../../../Script/Main/main.js"></script> código em todos os lugares que você chama. A extensão css criará completa <link rel="stylesheet" type="text/css" href="../../../Style/Shared/File.css"> código em todos os lugares que você chama.
SharedLayouts é o nome de um serviço simplista que está na pasta compartilhada na pasta View ( public_html/View/Shared ).
Ele contém 2 pastas e um arquivo .phtml com nome "layouts" por padrão. O arquivo de layouts pode contém uma ou mais classes para cada parte do projeto. Por exemplo, há uma aula como esta:
class MainLayouts { public static function _Header() { include "Main/_HeaderLayout.phtml"; } public static function _Menu() { include "Main/_MenuLayout.phtml"; } public static function _Footer() { include "Main/_FooterLayout.phtml"; } }
Ele inclui alguns métodos para carregar outros arquivos de exibição como cabeçalho, menu e rodapé. Não há conceito complexo.
Colocamos alguns arquivos de marcação com extensões ".md" como nossos arquivos de guia detalhados. Sugerimos fortemente que você faça o download e instale um visualizador Mark Down para o seu Brower para visualizar esses arquivos com melhor experiência.