O PHPSLIDE é a estrutura PHP é projetada principalmente para modelos de fundação já criados usados na criação de database management de Router , Api e banco de dados?
Use phpslides na criação de roteador protegido muito baseado, API e banco de dados, criado um banco de dados de modelo embutido que aceita - o banco de dados MySql & Sqlite também pode configurar outro banco de dados.
Por padrão, ele tem injeções de SQL, impede o projeto de ataques XXS e CSRF?
É uma boa prática para um iniciante no PHP começar com phpslides
Com o PHPSLIDE, toda a solicitação proveniente do servidor está redirecionando para phpslides para verificar o roteamento. E verifica se a solicitação corresponde às rotas registradas, caso contrário, retorna uma página 404 não encontrada?.
Nenhuma solicitação pode acessar arquivos ou pastas em um projeto phpslides, a menos que especificado no roteamento?.
Por padrão, ele retorna 404 não encontrou a página se eles navegam em algum arquivo ou pastas ou solicitações recebidas se não tiver sido registrada?.
Quer visitar um arquivo diretamente? Ele será configurado no arquivo de configuração do slides, mas só pode acessar arquivos no diretório público, se especificado?.
Além disso, você pode especificar os tipos de arquivos para acessar ou especificar extensões específicas que podem ser solicitadas de cada pastas no diretório público ou em todas as pastas?.
Ele aceita todos os tipos de arquivos, imagens, vídeos, áudios, documentos ou textos simples ?.
Leia os códigos padrão do PHPSLIDes e compreenda cada função dos códigos, os códigos são arrumados e legíveis?.
Em primeiro lugar, criamos nosso projeto Slides executando este comando no seu terminal se o compositor já estiver instalado.
composer create-project dconco/php_slides slide_project Onde o slide_project é o nome do projeto que você cria e é o diretório do projeto. E vai criar o projeto com o nome especificado no diretório de destino, onde você o instala
Se o compositor ainda não estiver instalado. Instale -o executando:
pkg install composerE estamos todos definidos.
Abriíamos nosso projeto no VSCODE ou PHPSTORM ou em qualquer outro editores de PHP.
Vamos iniciar nosso projeto no navegador, você configuraria e iniciaria o servidor Apache no seu XAMPP ou em qualquer outro servidor PHP. Se você estiver usando o telefone, poderá usar o AWebServer para servidor PHP. E abra o host em seu navegador, você verá um modelo padrão.
Existem diferentes métodos de rota de solicitação. Esses métodos de rota são usados recebendo solicitação do lado do cliente
Abra o arquivo routes/route.php no seu editor. Abra a pasta de routes , o arquivo route.php . Por padrão, você verá que uma rota do painel foi registrada, poderá removê -la para começar do zero.
Vamos criar um simples slides de blog como exemplo. Então, registraríamos nossas rotas, precisaríamos de uma Login Page , Register , Profile e Posts Page . Vamos registrar rotas PUR no arquivo route.php e escrever exemplo:
<?php
include_once dirname ( __DIR__ ) . " /vendor/autoload.php " ;
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: view ( " /login " , " ::Login " );
?>Este exemplo acima é explicado:
Em primeiro lugar, importamos nosso arquivo AUTOLOAD do diretório do fornecedor para que possamos usar todos os nomes de nossas classes.
Com use PhpSlidesRoute nós a usamos na importação de nossa classe de rota para usar.
A função Route::config deve ser especificada no início de nossos códigos. Isso faz com que o PHPSLIDE configure as rotas de nossos sites e o torna muito seguro, o que permite ter acesso na configuração do roteamento e dos caminhos solicitados.
A função Route::config leva 1 parâmetro booleano que indica se deve permitir a solicitação de logs. Por padrão, ele é definido como true. Então, em cada solicitação, ele grava as informações do cabeçalho da solicitação no arquivo .log .
E a função Route::view permite criar uma rota de exibição.
Os parâmetros passados para ele serão dois, o primeiro parâmetro especifica a rota que deve ser solicitada para renderizar o segundo parâmetro.
Os segundos parâmetros renderizam os arquivos no diretório View, que podem ser acessíveis com :: ( Double Colon ) e o nome do arquivo. Quaisquer arquivos que criamos no diretório de visualização devem estar no nome do formato fileName.view.php , que o fileName é o nome do arquivo de exibição e o .view.php é a extensão do arquivo, de modo que o phpslides notará que é um arquivo de visualização.
Então, vamos criar um novo arquivo chamado Login.view.php , pois o registramos na rota. Em seguida, podemos escrever um pequeno exemplo de código HTML.
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h2>Login Page</h2>
<input type="email" name="emai" />
<input type="password" name="password" />
<button type="submit">Login</button>
</body>
</html>Exemplo de Método Get Rota
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: get ( " /login " , Route:: view ( " ::Login " ));
?> Você vê a diferença entre o View & Get Route. Na rota de exibição, você não precisa obter o arquivo de exibição com Route::view , você escreve a visualização como uma string no 2º parâmetro.
Mas na rota Get, os 2º parâmetros que são usados como uma função de retorno de chamada leva qualquer tipo de código. por exemplo, cordas, matriz, função. Uma vez que o retorna diretamente para o lado do cliente. Com as rotas GET, o método de solicitação da URL específico para receber deve ser uma solicitação GET, portanto, conforme todos os métodos de rotas.
Obtenha rota com o método da função de fechamento
Route:: get ( " /login " , function () {
return Route:: view ( " ::Login " );
});Ele retorna a página de visualização de login, podemos retornar quaisquer valores de PHP ao navegador.
Todos os métodos de rotas possuem segundos parâmetros como função de retorno de chamada, que leva métodos de função ou quaisquer outros métodos.
Obtenha o método de rota com parâmetros de URL com fechamentos
Route:: get ( " /posts/{id} " , function ( int $ id ) {
return " Posts ID = " . $ id
});Este exemplo acima registra uma nova rota Get com a solicitação de postagens que recebem solicitação GET com uma função Parâmetros de fechamento de ID. Se a solicitação foi/postagens/2, ele retornará "Posts ID = 2", ele obtém o valor de identificação e o enviará para o lado/navegador do cliente.
Exemplo de método de pós -rota
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route::post( " /add_user " , ());
?>Ele chama o método de postagem, indica que a função de rota post só pode ser executada se o request_method for uma solicitação de postagem. E pode ser usado em como enviar dados de formulário.
Os segundos parâmetros estão vazios, podem retornar um formato JSON, porque o método post é normalmente usado no envio de uma solicitação de postagem que retorna dados em formatos JSON, o segundo parâmetros pode conter qualquer formato para uma função de retorno de chamada
É assim que o método da rota de restante é.
Exemplo de método de rota de put
Route::put( " /user " , ());O método de put é como uma solicitação de postagem, ao adicionar informações ou dados a um arquivo ou banco de dados específico.
Exemplo de método de rota de atualização
Route::update( " /user/{id} " , ());O método de atualização é normalmente usado na atualização de informações como no banco de dados.
Exemplo de método de exclusão de rota
Route::delete( " /user/{id} " , ());O método de exclusão é normalmente usado provavelmente na exclusão de informações no banco de dados.
Exemplo de qualquer método de rota
Route::any( " /user/{id} " , ()); Com o método Route::any() pode ser usado se você quiser aceitar todos os tipos de solicitação. Pode ser postagem, obter, colocar, atualizar ou excluir, dependendo do método de rota solicitado.
Exemplo de método de rota não atingido
Route:: any ( " * " , Route:: view ( " ::errors::404 " )); Neste exemplo acima, criamos uma rota e fazemos com que o primeiro parâmetro seja * , o que indica retornar sempre que não houver rotas correspondentes à URL solicitada.
A rota não encontrada deve estar no final das rotas registradas, para que possa ser executada quando todas as rotas acima forem incompatíveis.
E no segundo parâmetro, navegamos para view a pasta e criamos uma pasta denominada errors dentro do diretório view e, em seguida, criamos uma página chamada 404.view.php
Você pode criar um URL de várias rotas que renderizará uma página ou uma função.
Crie vários URLs com a matriz e a lista de URLs. Pode usar qualquer método de rota.
Nota: Você não pode usar vários URLs ao usar parâmetros de rotas com {} aparelho encaracolado
Route:: view ([ " / " , " /index " , " /dashboard " ], " ::dashboard " ); Este exemplo explica que sempre que o URL solicitado corresponde aos URLs especificados na matriz e renderiza o dashboard.view.php no navegador. Todos os métodos de rota aceitam vários URL. Também pode criar vários URL para 404 páginas.
PhpSlides permite que você possa acessar as teclas de parâmetros de rota no controlador de classe.
Você pode usar qualquer método de rota para o controlador de roteamento, exceto o método de exibição. Vamos com o método get.
Criamos nosso componente de classe simples no diretório Controller no diretório raiz do seu projeto.
Navegue para o diretório Controller e crie um nome de controlador de sua escolha, mas deve estar neste formato ClassName + Controller.php , que deve ser ClassNameController.php .
Então, vamos criar um novo controlador chamado UserController.php . Vamos navegar para o arquivo criado e escrever alguns códigos nele.
<?php
namespace PhpSlides Controller ;
final class UserController extends Controller
{
public function __invoke ( int $ id ) {
return " <h2>Get User with ID = { $ id } </h2> " ;
}
}
?> Neste exemplo acima, criamos um arquivo chamado UserController.php na pasta /controller .
E criamos um espaço para nome para o controlador de classe que será usado para ligar para a classe. Criamos a classe chamada UserController e a estendemos à classe Controller , que permite acessar algumas funções protegidas.
Certifique -se de que, depois de todos os componentes da classe criados, que possuem um espaço para nome, você deve executar isso abaixo do comando para a carga automática de cada classes.
composer slides-refreshAs palavras -chave finais da classe descrevem que a classe deve ser final e não pode ser estendida a outra classe, você pode removê -la se a classe deve ser estendida.
E criamos nossa função pública chamada __inVoke, que obtém o parâmetro de fechamento na rota, que será usado para obter os parâmetros da URL e retornar o valor da função de retorno de chamada. Por isso, obtém os parâmetros de fechamento $ ID e o descreve como um número inteiro usando o int antes do nome do param.
Vamos registrar as rotas do usuário e fazer com que seja a rota, pode torná -lo qualquer tipo de solicitação de rota, dependendo do uso.
<?php
use PhpSlides Route ;
use PhpSlides Controller UserController ;
Route:: config ();
Route:: get ( " /user/{id} " , [ UserController::class ]);
?> Neste exemplo acima, já criamos uma classe chamada UserController e criamos um método Get Route que possui um parâmetro de URL do id .
Em seguida, renderizamos a classe UserController , que o parâmetro id foi enviado para a classe UserController com a função __invoke .
Em nosso controlador de classe, também podemos criar vários métodos para diferentes solicitações de rota.
<?php
final class UserController extends Controller
{
public function __invoke () {
return " <h2>Invoked User Successful. Receieved all users successfully.</h2> " ;
}
public function User ( $ id ) {
return " <h2>Received an ID - $ id for a user.</h2> " ;
}
}
?> No UserController criamos outro método chamado User() que leva um parâmetro como $id para o parâmetro de solicitação de URL id .
Então, vamos usar o método da classe User() na rota.
Route:: get ( " /user " , [ UserController::class ]);
Route:: get ( " /user/{id} " , [ UserController::class, ' User ' ]);Na primeira função, não possui um parâmetro de URL, porque neste caso estamos retornando todos os usuários disponíveis, não cada usuário.
E criamos a segunda função como /user/{id} , isso significa que passamos o parâmetro id URL para o método de rota User() .
Para usar o método User() , passando o nome do método que é User como string na matriz do controlador de rota, no segundo índice da matriz, pode levar apenas dois valores de matriz.
Pode adicionar o maior número possível de métodos e muitos parâmetros de URL possível.
Exemplo abaixo para criar vários parâmetros de URL:
Route:: get ( " /user/{id}/post/{post_id} " , function ( $ user_id , $ post_id )
{
return " User ID = $ user_id & Post ID = $ post_id " ;
}); Possui dois parâmetros de URL chamados id e post_id para ID do usuário e ID de postagem, então obtemos os parâmetros da URL no parâmetro da função de fechamento. A mesma coisa que o método do controlador de rota.
Mas verifique se a variável de parâmetros de fechamento da função não pode ser a mesma coisa que pode girar conflitos, mas os parâmetros da URL podem ser os mesmos.
As configurações no PHPSLIDE, fazem com que você tenha acesso total na configuração da maneira como a solicitação pode ser enviada/recebida nos roteiros. E as configurações de roteamento podem ser configuradas no arquivo phpslides.config.json .
Por padrão, em todos os lugares da web ficará em branco, mesmo que eles navegem em qualquer página. Portanto, o roteamento da Web é usado para adicionar páginas à Web, se eles seguirem algum link, ele retornará a página para o URL. E se Not Found page , ela será usada sempre que a página não existir.
Por padrão, se eles abrirem algum URL para qualquer caminho da página, a Web ficará em branco, a menos que seja adicionado a Not Found page , para que a devolva, porque para fazer com que seu site garantisse que eles só possam acessar a peça que você deseja que eles acessem.
E as configurações no PHPSLIDes facilitam a permitir que você configure a parte que um usuário pode visualizar, para fazer um site muito seguro ... como eles só podem visualizar arquivos na pasta pública, mas não podem visualizar as pastas além de roteamento.
_Exemplo de configuração em phpslides
Abra o phpslides.config.json no diretório raiz do seu projeto.
{
"charset" : " UTF-8 "
}Este exemplo acima especifica os charsets a serem usados em retornar todos os arquivos e rotear páginas para o Brower. Mas pode alterá -lo a qualquer momento com o código PHP, se você deseja que alguma parte seja alterada.
{
"public" : {
"/" : [ " * " ]
}
} Adicionamos uma chave public no arquivo json, que especifica que, dentro do diretório public , os arquivos e arquivos aninhados nas pastas que podem acessar
Adicionamos a chave / que especifica a raiz do diretório public . Então, adicionamos que ele tem * (Asterisk) . Que especifica para acessar todos os arquivos na raiz do diretório public . E podemos especificar qualquer tipo de extensão que eles possam acessar, mesmo que o arquivo exista e eles tentem acessar o arquivo que a extensão não está disponível na configuração, ele retornará uma Not Found page . Eles podem escrever várias extensões na matriz. E também pode escrever image pela qual eles podem acessar todas as imagens, video ou audio .
"/" : [ " image " , " audio " , " video " ] Em cada pastas aninhadas dentro do diretório public , serão especificadas como uma variedade de extensões no arquivo de configuração. E se você deseja permitir todas as pastas aninhadas, basta especificar a pasta no arquivo JSON e a extensão que ele pode permitir em todos os diretórios aninhados.
Como digamos, os diretórios estão neste formato:
public:
assets:
image.jpg
file.pdf
vendor:
bootstrap.min.js
images:
image.png
image1.jpg
file.html
Portanto, este exemplo é explicado: no diretório public temos pasta de assets e images . Portanto, na pasta assets , temos 1 imagem, 1 arquivo pdf e 1 pasta vendor que contêm bootstrap.min.js . Então, se quisermos configurá -lo ::
{
"public" : {
"assets" : [ " jpg " , " js " ],
"images" : [ " image " , " video " ]
}
} Neste exemplo, criamos apenas configurações para o diretório de assets e images ; portanto, todos os arquivos e pastas no diretório de assets usarão as extensões adicionadas no diretório de assets que especifica que, neste exemplo, a extensão js especificada será permitida também na pasta vendor ou adicionamos a chave vendor ao arquivo json.
Assim, ao configurarmos o diretório assets eles só podem acessar o arquivo jpg e o arquivo js na pasta vendor .
Para o diretório images , especificamos que ele pode acessar apenas os arquivos que são image ou video , por isso permite os 2 arquivos que são png & jpg e Return Not Found page sempre que tentarem acessar o file.html Qual extensão não é adicionada.
Para visualizar todos os arquivos que estão no diretório public com arquivos em pastas aninhadas. Você não adicionará a pasta public antes de obter arquivos, ele retornará Not Found page . Assim, como o exemplo acima, para acessar o arquivo na pasta assets . Seguiríamos o URL: http://localhost:8000/assets/image.jpg e não http://localhost:8000/public/assets/image.jpg . E se os arquivos estiverem no diretório raiz do projeto, ele seria acessado diretamente após o URL do host: http://localhost:8000/image.jpg .
Nesta versão, o Slides fornece uma maneira de lidar com a página de visualização Crie seu arquivo de modelo de exibição no diretório views , neste formato fileName + .view.php Extension. que é fileName.view.php
Os phpslides criaram uma sintaxe de exibição especial.
<? ?>Vamos começar isso ..
<! DOCTYPE html>
<html>
<!-- Php codes if needed -->
<?
?>
<head>
<!-- Meta Tags Info -->
<title>Page Title</title>
</head>
<body>
<!-- Body contents -->
</body>
</html> Em uma página de modelo de visualização em que escrevemos códigos HTML, a tag php não deve iniciar o arquivo, em vez disso, escreva a etiqueta PHP e os códigos dentro da tag <html> ou em qualquer outro lugar além da partida, deve sempre iniciar documentos html com a tag <html> e não <?php tag
O <? ?> tag no modelo de exibição é uma tag php curta usada na escrita de códigos de php curtos. Como usar a instrução IF ou ecoar os dados na página HTML. Códigos de exemplo:
<body>
<? if ( $ user ): ?>
<h1>Hello <? @view $ user ?> </h1>
<? else : ?>
<h1>Hello Guest</h1>
<? endif ; ?>
<p>
<? @view ' welcome to our blog spot! ' ?>
</p>
</body> Este exemplo é explicado como: No elemento corporal, verificamos se um usuário retornar true, ele adicionará o elemento h1 com o texto Hello com o valor da variável do usuário que é retornado usando a palavra -chave @View nos slides. Caso contrário, ele retornará e o elemento h1 com texto Hello Guest na tag <p> Escrevemos códigos PHP que usam a palavra -chave @view para retornar a string/valor ao elemento <p> .
:: View & :: root
A ::view é apenas uma palavra gravada apenas nos arquivos de modelo de exibição que retornam o local da raiz após o nome do servidor no projeto, começando no / . Geralmente usado para vincular arquivos públicos. E o ::root está retornando o local da raiz do seu projeto e não tem o ::view , ::root é usado no PHP na inclusão de arquivos do projeto, mas ::view pode apenas acessar apenas o que o navegador/lado do cliente pode aceitar, mas não pode acessar nenhum arquivo no projeto quando não estiver no diretório public .
Agora, vamos imaginar que temos imagens que acessaríamos no diretório público e o arquivo php extra que precisaríamos incluir na página de exibição.
<body>
<? include ' ::root/components/extraFile.php ' ?>
<div>
<img src="::view/assets/icon.png" alt="Icon" />
</div>
</body> Nesse caso, a raiz do projeto é indicada como ::root e dentro do projeto, criamos uma pasta chamada components e um novo arquivo chamado extraFile.php para que qualquer código php inclua na página de exibição.
A ::view é a localização raiz do host do servidor, então vamos imaginar o URL do host como http: // public http://localhost:8000/ para que seja indicado como ::view/ ::view e normalmente em slides, ::view/public
Portanto, o URL AS ::view/assets/icon.png no diretório public criou uma pasta assets e imagem icon.png .
O Slides fornece maneira de incluir outro arquivo de modelo de exibição em uma página de exibição e não apenas arquivos PHP.
2 maneiras de incluir a página de visualização
<include !/> Htmlslides_include php Com a tag <include !/> Html, você pode incluir outra página PHP/View na página de exibição atual. Que permite que você escreva o modelo de exibição de slides em outros arquivos para incluir. E também pode incluir qualquer outro arquivo PHP localizado em qualquer lugar do projeto.
< body >
< include path =" ::root/components/extraFile.php " ! />
< include path =" ::root/views/viewPage.view.php " ! />
</ body > Portanto, na primeira tag, incluímos um arquivo php localizado no diretório components . E a segunda tag, incluímos um arquivo de modelo de exibição localizado no diretório views . E só pode usar a tag <include !/> Em uma página de modelo de exibição.
slides_include
Esta função fornece uma maneira de incluir arquivos de visualização em qualquer arquivo php e não apenas na página do modelo de exibição.
<? @view slides_include ( ' ::root/comp/extraFile.php ' ) ?>
<? @view slides_include ( ' ::root/views/page.view.php ' ) ?> O PHPSLIDES REALELEEDE APIs em -v1.2.0, que permite que você trabalhe com a API em seu projeto. A API é como a rota, mas está renderizando os dados de volta à solicitação e não ao navegador. Os slides fornecem a função Api que permite registrar uma rota da API. E configurou o controlador da API no arquivo web.php . Registre sua nova rota de API na routes/api.php FILE
<?php
use PhpSlides Api ;
Api:: get ();
Api:: post ();
Api:: put ();
Api:: patch ();
Api:: update ();
Api:: delete ();
?> No exemplo acima, blocos de código, criamos APIs e esses são o método de solicitação da API disponível na API. A função Api leva apenas 2 parâmetros, o URL da rota da API e o segundo parâmetro é o método da classe do controlador.
Observe que antes de criar API, certifique -se de configurar a função Route::config() no arquivo route.php , mesmo que não use a rota da web.
Vamos criar uma API para a rota de solicitação fornecida "/api/users" com um método de postagem que mostraria a lista de usuários disponíveis em um banco de dados. E crie outra rota "/api/users/{id}" também um método de postagem que mostraria um usuário específico pelo ID fornecido.
<?php
use PhpSlides Api ;
Api:: post ( " /api/users " );
Api:: post ( " /api/users/{id} " , @user);
?> Portanto, na primeira API, não fornecemos um segundo parâmetro para o método usar, que por padrão é o método __invoke . E no segundo, usamos o @user que declara o método user da mesma classe de controlador. O @ Target o nome do método da classe do controlador.
Vamos primeiro criar nossa classe de controlador no diretório Controller/Api . Vamos nomeá -lo UserController . Em nossos nomes de controladores, é o Controller encerrar um arquivo, que descreve um arquivo de controlador.
<?php
namespace PhpSlides Controller ;
final class UserController extends Controller
{
function __invoke () {
$ response = [ ' data ' => ' We have gotten all users id successful ' ];
return json_encode ( $ response );
}
function user ( int $ id ) {
$ response = [ ' data ' => ' The particular user id = $id ' ];
return json_encode ( $ response );
}
}
?> Na classe UserController , criamos os dois métodos funcionais e retomamos um formato JSON codificado.
Ainda não feito .. precisamos registrar cada URL de rotas de API para classe de controlador no arquivo src/web.php .
<?php
use PhpSlides Controller UserController ;
return [
' /api/users ' => UserController::class,
' /api/users/{id} ' => UserController::class
];
?>Retornamos a API Register Rotas agora está pronta para ser consumida ❤️?.
Hurra como você gosta de usar phpslides !!!
Mais funções estão chegando nas próximas versões