PhpSlides es PHP Framework diseñado principalmente para plantillas de base ya creadas utilizadas para crear Router , Api y database management ?
Use PhpSlides en la creación de una base de datos de plantillas incorporada de enrutador, API y SQLite creado que acepta: MySql & Sqlite Database también puede configurar otra base de datos.
Tiene, por defecto, para prevenir las inyecciones de SQL, ¿evita el proyecto de los ataques XXS y CSRF?
Es una buena práctica que un principiante en PHP comience con PhpSlides
Con PhPSlides, todas las solicitudes que provienen del servidor están redirigiendo a PhPSlides para verificar el enrutamiento. Y verificaciones si la solicitud coincide con las rutas registradas, de lo contrario devuelve una página 404 no encontrada?
Ninguna solicitud puede acceder a ningún archivo o carpetas en un proyecto PhPSLides a menos que se especifique en el enrutamiento?
De manera predeterminada, devuelve 404 la página no encontrada si navegan a cualquier archivo o carpetas o alguna solicitud recibida si no se ha registrado.
¿Quieres visitar un archivo directamente? Se configurará en el archivo de configuración de diapositivas, pero solo puede acceder a archivos en el directorio público si se especifica?
También puede especificar los tipos de archivos para acceder o especificar extensiones particulares que se pueden solicitar en cada carpetas en el directorio público o todas las carpetas.
¿Acepta todo tipo de archivos, imágenes, videos, audios, documentos o textos sin formato?
Leer los códigos predeterminados de PhPSLides y comprender cada función de códigos, ¿los códigos son ordenados y legibles?
En primer lugar, creamos nuestro proyecto de diapositivas ejecutando este comando en su terminal si el compositor ya está instalado.
composer create-project dconco/php_slides slide_project Donde el slide_project es el nombre del proyecto que crea y es el directorio del proyecto. Y va a crear el proyecto con el nombre especificado en el directorio de destino donde lo instala
Si el compositor aún no está instalado. Instalarlo ejecutando:
pkg install composerY todos estamos establecidos.
Abriríamos nuestro proyecto en VScode o PhpStorm o cualquier otro editor de PHP.
Comencemos nuestro proyecto en el navegador, configuraría e iniciaría el servidor Apache en su XAMPP o en cualquier otro servidor PHP. Si está utilizando el teléfono, puede usar AWEBSERVER para el servidor PHP. Y abra el host en su navegador, verá una plantilla predeterminada.
Existen diferentes métodos de ruta de solicitud. Estos métodos de ruta se utilizan recibiendo solicitud del lado del cliente
Abra el archivo routes/route.php en su editor. Abra la carpeta routes , el archivo route.php . Por defecto, verá que se ha registrado una ruta del tablero, puede eliminarla para comenzar desde cero.
Creemos una simple diapositiva de blog como ejemplo. Por lo tanto, registraríamos nuestras rutas, necesitaríamos una Login Page , Register , Profile y Posts Page . Registremos las rutas PUR en el archivo route.php y escriba el ejemplo:
<?php
include_once dirname ( __DIR__ ) . " /vendor/autoload.php " ;
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: view ( " /login " , " ::Login " );
?>Este ejemplo anterior se explica:
En primer lugar, importamos nuestro archivo AutOload desde el directorio de proveedores para que podamos usar todos nuestros nombres de clase.
Con use PhpSlidesRoute la usamos para importar nuestra clase de ruta para usar.
La función Route::config debe especificarse al comienzo de nuestros códigos. Hace phpslides para configurar las rutas de nuestro sitio web y lo hace muy seguro, lo que permite tener acceso en la configuración de la enrutamiento y las rutas solicitadas.
La función Route::config toma 1 parámetro booleano que indica si permitir la solicitud de registros. Por defecto, se establece en verdadero. Entonces, en cada solicitud, se escribe la información del encabezado de solicitud al archivo .log .
Y la función Route::view le permite crear una ruta de vista.
Los parámetros que se le pasan a él, serán dos, el primer parámetro especifica la ruta que se debe solicitar para representar el segundo parámetro.
Los segundos parámetros representan los archivos en el directorio de vista a los que se puede acceder con :: ( doble colon ) y el nombre del archivo. Cualquier archivo que creamos en el directorio de vista debe estar en el formato fileName.view.php que el fileName es el nombre del archivo de vista y el .view.php es la extensión del archivo, por lo que PhpSlides notará que es un archivo de vista.
Así que creemos un nuevo archivo llamado Login.view.php , ya que lo hemos registrado en la ruta. Entonces podemos escribir un pequeño ejemplo 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>Ejemplo de método de ruta Get
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: get ( " /login " , Route:: view ( " ::Login " ));
?> Ves la diferencia entre la ruta View & Get. En la ruta de la vista, no necesita obtener el archivo de vista con Route::view , escribe la vista como una cadena en el segundo parámetro.
Pero en la ruta Get, los 2º parámetros que se usan como una función de devolución de llamada requieren cualquier tipo de código. por ejemplo, cuerdas, matriz, función. Ya que lo devuelve directamente al lado del cliente. Con las rutas Get, el método de solicitud de la URL en particular para recibir debe ser una solicitud GET, por lo que todos los métodos de rutas.
Obtener la ruta con el método de función de cierre
Route:: get ( " /login " , function () {
return Route:: view ( " ::Login " );
});Devuelve la página de vista de inicio de sesión, podemos devolver cualquier valor de PHP al navegador.
Todos los métodos de rutas tienen segundos parámetros como función de devolución de llamada que toma métodos de función o cualquier otro método.
Obtener el método de ruta con parámetros de URL con cierres
Route:: get ( " /posts/{id} " , function ( int $ id ) {
return " Posts ID = " . $ id
});Este ejemplo anterior registra una nueva solicitud de ruta Get con /publicaciones que recibe la solicitud GET con una función de parámetros de cierre de ID. Si la solicitud fue/publicaciones/2, entonces devolverá "Postes ID = 2" Obtiene el valor de ID y lo enviará al lado del cliente/navegador.
Ejemplo de método de ruta posterior
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route::post( " /add_user " , ());
?>Llama al método de publicación, indica que la función de ruta posterior solo se puede ejecutar si el request_method es una solicitud posterior. Y se puede utilizar como enviar datos de formulario.
El segundo parámetros está vacío, puede devolver un formato JSON, porque el método de publicación se usa normalmente para enviar una solicitud de publicación que devuelve datos en formatos JSON, los segundos parámetros pueden contener cualquier formato para una función de devolución de llamada
Así es el método de ruta REST.
Ejemplo del método de ruta de Put Route
Route::put( " /user " , ());El método Put es como una solicitud de publicación, al agregar información o datos a un archivo o base de datos específica.
Ejemplo de método de ruta de actualización
Route::update( " /user/{id} " , ());El método de actualización se usa normalmente en la actualización de información como en la base de datos.
Ejemplo de método de ruta Eliminar
Route::delete( " /user/{id} " , ());El método de eliminación se usa normalmente probablemente para eliminar la información en la base de datos.
Ejemplo de cualquier método de ruta
Route::any( " /user/{id} " , ()); Con el método Route::any() se puede usar si desea aceptar todo tipo de solicitudes. Puede ser publicar, obtener, poner, actualizar o eliminar, dependiendo del método de ruta solicitado.
Ejemplo de método de ruta nofound
Route:: any ( " * " , Route:: view ( " ::errors::404 " )); En este ejemplo anterior, creamos cualquier ruta y hacemos que el primer parámetro sea * lo que indica devolver cada vez que no hay rutas coincidentes con la URL solicitada.
La ruta no más importante debe estar al final de las rutas registradas, por lo que se puede ejecutar cuando todas las rutas anteriores no están coincidentes.
Y en el segundo parámetro, navegamos para view la carpeta y creamos una carpeta con nombre de errors dentro del directorio view , luego creamos una página llamada 404.view.php
Puede crear una URL de múltiples rutas que renderice una página o una función.
Cree múltiples URL con matriz y lista de URL en ella. Puede usar cualquier método de ruta.
Nota: no puede usar múltiples URL cuando usa parámetros de rutas con {} aparatos ortopédicos
Route:: view ([ " / " , " /index " , " /dashboard " ], " ::dashboard " ); Este ejemplo explica que cada vez que la URL solicitada coincide con las URL especificadas en la matriz, y representa el dashboard.view.php en el navegador. Todos los métodos de ruta aceptan múltiples URL. También puede crear múltiples URL para la página 404.
PhpSlides le permite poder acceder a las claves de parámetros de ruta en el controlador de clase.
Puede usar cualquier método de ruta para el controlador de enrutamiento, excepto el método de vista. Vamos con el método Get.
Creamos nuestro componente de clase simple en el directorio Controller en el directorio raíz de su proyecto.
Navegue al directorio Controller y cree un nombre de controlador de su elección, pero debe estar en este formato ClassName + Controller.php , que debería ser ClassNameController.php .
Así que creemos un nuevo controlador llamado UserController.php . Navegamos al archivo creado y escribamos algunos códigos en él.
<?php
namespace PhpSlides Controller ;
final class UserController extends Controller
{
public function __invoke ( int $ id ) {
return " <h2>Get User with ID = { $ id } </h2> " ;
}
}
?> En este ejemplo anterior, creamos un archivo llamado UserController.php en la carpeta /controller .
Y creamos un espacio de nombres para el controlador de clase que se usará para llamar a la clase. Creamos la clase llamada UserController y la ampliamos a la clase Controller , lo que le permite acceder a algunas funciones protegidas.
Asegúrese de que después de cada componente de clase creado que tenga un espacio de nombres, debe ejecutar este siguiente comando para el comando de auto para cada clases.
composer slides-refreshLas palabras clave finales de la clase describen que la clase debe ser definitiva y no se puede extender a otra clase, puede eliminarla si la clase se extiende.
Y creamos nuestra función pública llamada __invoke que obtiene el parámetro de cierre en la ruta, que se usará para obtener los parámetros de URL y devolver el valor para la función de devolución de llamada. Por lo tanto, obtiene los parámetros de ID de cierre de $ y lo describe como un entero utilizando el int antes del nombre de parámetro.
Registremos las rutas de usuario y hagamos que sea una ruta, pueda convertirlo en cualquier tipo de solicitud de ruta dependiendo del uso.
<?php
use PhpSlides Route ;
use PhpSlides Controller UserController ;
Route:: config ();
Route:: get ( " /user/{id} " , [ UserController::class ]);
?> En este ejemplo anterior, ya creamos una clase llamada UserController , y creamos un método GET Route que tiene un parámetro URL de id .
Luego representamos la clase UserController , que el parámetro id se ha enviado a la clase UserController con la función __invoke .
En nuestro controlador de clase, también podemos crear múltiples métodos para diferentes solicitudes de ruta.
<?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> " ;
}
}
?> En el UserController creamos otro método llamado User() que toma un parámetro como $id para el parámetro de solicitud de URL id .
Entonces, usemos el método de clase User() en la ruta.
Route:: get ( " /user " , [ UserController::class ]);
Route:: get ( " /user/{id} " , [ UserController::class, ' User ' ]);En la primera función no tiene un parámetro URL, porque en este caso estamos devolviendo a todos los usuarios disponibles, no a cada usuario.
Y creamos la segunda función como /user/{id} , eso significa que pasamos el parámetro de URL id al método de ruta User() .
Para usar el método User() pasando el nombre del método que es User como cadena en la matriz de controlador de ruta, en el segundo índice de la matriz, solo puede tomar dos valores de matriz.
Puede agregar tantos métodos como sea posible, y muchos parámetros de URL como pueda.
Ejemplo a continuación para crear múltiples 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 " ;
}); Tiene dos parámetros de URL llamados id y post_id para ID de usuario y ID de Post, luego obtenemos los parámetros de URL en el parámetro de función de cierre. Lo mismo que el método de controlador de ruta.
Pero asegúrese de que la variable de parámetros de cierre de la función no pueda ser lo mismo, podría convertir el conflicto, pero los parámetros de URL pueden ser los mismos.
Configuraciones en PhPSlides, lo que le hace tener acceso completo en la configuración de la forma en que la solicitud se puede enviar/recibir en las rutas. Y las configuraciones de enrutamiento se pueden configurar en el archivo phpslides.config.json .
Por defecto, en todas partes en la web estará en blanco a pesar de que navegan a cualquier página. Por lo tanto, el enrutamiento web se usa para agregar páginas a la web si siguen cualquier enlace, devolverá la página para la URL. Y si se setupped Not Found page , se usará cuando la página no exista.
De manera predeterminada, si abren alguna URL a cualquier ruta de la página, la web estará en blanco a menos que se agregue la Not Found page , por lo que la devolverá, porque para que su sitio web se asegure solo pueden acceder a la parte a la que desea que accedan.
Y las configuraciones en PhpSlides facilitan el permitirle configurar la parte que un usuario puede ver, para hacer un sitio web muy seguro ... ya que solo pueden ver cualquier archivo en la carpeta pública, pero no pueden ver las carpetas allí aparte de la enrutamiento.
_Ejemplo de configuración en phpslides
Abra el phpslides.config.json en el directorio raíz de su proyecto.
{
"charset" : " UTF-8 "
}Este ejemplo anterior especifica los Charsets que se utilizarán para devolver todos los archivos y páginas de enrutamiento al Brower. Pero puede cambiarlo en cualquier momento con el código PHP, si desea que se cambie alguna parte.
{
"public" : {
"/" : [ " * " ]
}
} Agregamos una clave public en el archivo JSON, que especifica que dentro del directorio public , los archivos y los archivos anidados en las carpetas a las que puede acceder
Agregamos la / clave que especifica la raíz del directorio public . Así que agregamos que tiene * (asterisco) . Que especifica acceder a todos los archivos en la raíz del directorio public . Y podemos especificar cualquier tipo de extensiones a la que puedan acceder, a pesar de que el archivo existe e intentan acceder al archivo que la extensión no está disponible en la configuración C, devolverá una Not Found page . Pueden escribir múltiples extesiones en la matriz. Y también pueden escribir image por la cual pueden acceder a todas las imágenes, video o audio .
"/" : [ " image " , " audio " , " video " ] En cada carpetas anidadas dentro del directorio public se especificará como una variedad de extensiones en el archivo de configuración. Y si desea permitir todas las carpetas anidadas, simplemente especificaría la carpeta en el archivo JSON y la extensión que puede permitir en todos los directorios anidados.
Como digamos que los directorios están en estos formatos:
public:
assets:
image.jpg
file.pdf
vendor:
bootstrap.min.js
images:
image.png
image1.jpg
file.html
Entonces, este ejemplo se explica: en el directorio public tenemos assets e images . Entonces, en la carpeta de assets tenemos 1 imagen, 1 archivo PDF y 1 carpeta vendor que contienen bootstrap.min.js . Entonces, si queremos configurarlo ::
{
"public" : {
"assets" : [ " jpg " , " js " ],
"images" : [ " image " , " video " ]
}
} En este ejemplo, solo creamos configuraciones para el directorio de assets e images , por lo que todos los archivos y carpetas en el directorio de assets utilizarán las extensiones agregadas en el directorio de assets que especifica que en este ejemplo, la extensión js especificada también se permitirá en la carpeta vendor , o agregamos la clave vendor al archivo JSON.
Entonces, a medida que configuramos el directorio assets , solo pueden acceder al archivo jpg y al archivo js en la carpeta vendor .
Para el directorio de images , especificamos que solo puede acceder a cualquier archivo que sea image o video , por lo que permite los 2 archivos que son png & jpg y devuelve Not Found page cada vez que intenta acceder al file.html qué extensión no se agrega.
Para ver todos los archivos que están en directorio public con archivos en carpetas anidadas. No agregará la carpeta public antes de obtener archivos, devolverá Not Found page . Entonces, como el ejemplo anterior, para acceder al archivo en la carpeta assets . Seguiríamos la URL: http://localhost:8000/assets/image.jpg y no http://localhost:8000/public/assets/image.jpg . Y si los archivos están en el directorio raíz del proyecto, se accederá directamente después de la url del host: http://localhost:8000/image.jpg .
En esta versión, las diapositivas proporcionan una forma de tratar con la página View Crear su archivo de plantilla de vista en el directorio views , en este formato fileName + .view.php Extension. que es fileName.view.php
PhpSlides creó una sintaxis de vista especial.
<? ?>Vamos a comenzar esto.
<! DOCTYPE html>
<html>
<!-- Php codes if needed -->
<?
?>
<head>
<!-- Meta Tags Info -->
<title>Page Title</title>
</head>
<body>
<!-- Body contents -->
</body>
</html> En una página de plantilla de vista donde escribe códigos HTML, la etiqueta PHP no debe iniciar el archivo, en su lugar, escribir la etiqueta PHP y los códigos dentro de la etiqueta <html> o cualquier otro lugar aparte del inicio, siempre debe iniciar documentos HTML con la etiqueta <html> y no <?php
El <? ?> La etiqueta en la plantilla de vista se utiliza la etiqueta PHP corta al escribir códigos PHP cortos. Me gusta usar la instrucción IF o hacer datos en la página HTML. Códigos de ejemplo:
<body>
<? if ( $ user ): ?>
<h1>Hello <? @view $ user ?> </h1>
<? else : ?>
<h1>Hello Guest</h1>
<? endif ; ?>
<p>
<? @view ' welcome to our blog spot! ' ?>
</p>
</body> Este ejemplo se explica como: en el elemento del cuerpo verificamos si un usuario devuelve verdadero, entonces agregará el elemento h1 con el Hello de texto con el valor variable del usuario que se devuelve utilizando la palabra clave @View en diapositivas. De lo contrario, devolverá y el elemento h1 con Text Hello Guest en la etiqueta <p> escribimos códigos PHP que usa la palabra clave @view para devolver la cadena/valor al elemento <p> .
:: Ver & :: Root
La ::view es solo una palabra escrita solo en los archivos de plantilla de vista que devuelven la ubicación raíz después del nombre del servidor en el proyecto que comienza desde / . Por lo general, se usa para vincular archivos públicos. Y ::root está devolviendo la ubicación raíz de su proyecto y no tiene la vista ::view ::root se usa en PHP al incluir cualquier archivo del proyecto, pero ::view puede acceder solo a lo que el navegador/lado del cliente puede acceder, pero no puede acceder a ningún archivo en el proyecto cuando no esté en el directorio public .
Ahora imaginemos que tenemos imágenes a las que accederíamos en el directorio público y el archivo PHP adicional que tendríamos que incluir en la página Ver.
<body>
<? include ' ::root/components/extraFile.php ' ?>
<div>
<img src="::view/assets/icon.png" alt="Icon" />
</div>
</body> En este caso, la raíz del proyecto se indica como ::root y dentro del proyecto creamos una carpeta llamada components y un nuevo archivo llamado extraFile.php para cualquier código PHP para incluir en la página Ver.
La ::view es la ubicación raíz del host del servidor, así que imaginemos la url del host como http://localhost:8000/ Entonces se indica como ::view y normalmente en diapositivas, todos los archivos y carpetas en directorio public se extienden en la raíz de la url como ::view/ y no ::view/public
Entonces, la URL AS ::view/assets/icon.png en el directorio public , creó una carpeta assets e imagen icon.png .
Las diapositivas le proporcionan una forma de incluir otro archivo de plantilla de vista en una página de vista, y no solo los archivos PHP.
2 formas de incluir la página Ver
<include !/> HTMLslides_include php Con la etiqueta <include !/> Html, puede incluir otra página de PHP/View en la página de vista actual. Que le permite escribir plantilla de vista de diapositivas en otros archivos para incluir. Y también puede incluir cualquier otro archivo PHP ubicado en cualquier parte del proyecto.
< body >
< include path =" ::root/components/extraFile.php " ! />
< include path =" ::root/views/viewPage.view.php " ! />
</ body > Entonces, en la primera etiqueta incluimos un archivo PHP ubicado en el directorio components . Y la segunda etiqueta incluimos un archivo de plantilla de vista ubicado en el directorio views . Y solo puede usar la etiqueta <include !/> En una página de plantilla de vista.
Slides_include
Esta función proporciona una forma de incluir archivos de vista en cualquier archivo php y no solo en la página de plantilla de vista.
<? @view slides_include ( ' ::root/comp/extraFile.php ' ) ?>
<? @view slides_include ( ' ::root/views/page.view.php ' ) ?> PhpSlides API realizadas en -v1.2.0, lo que le permite trabajar con API en su proyecto. La API es como la ruta, pero está devolviendo datos a la solicitud y no al navegador. Las diapositivas proporcionan la función Api que le permite registrar una ruta API. Y configuró el controlador API en el archivo web.php . Registre su nueva ruta API en el archivo routes/api.php
<?php
use PhpSlides Api ;
Api:: get ();
Api:: post ();
Api:: put ();
Api:: patch ();
Api:: update ();
Api:: delete ();
?> En los bloques de código de ejemplo anteriores, creamos API y esas son el método de solicitud de API que está disponible en la API. La función Api solo toma 2 parámetros, la URL de la ruta API y el segundo parámetro es el método de clase de controlador.
Tenga en cuenta que antes de que pueda crear API, asegúrese de configurar la función Route::config() en el archivo route.php a pesar de que no use la ruta web.
Creemos una API para la ruta de solicitud dada "/api/users" con un método de publicación que mostraría la lista de usuarios disponibles en una base de datos. Y cree otra ruta "/api/users/{id}" también un método de publicación que mostraría a un usuario en particular por la ID dada.
<?php
use PhpSlides Api ;
Api:: post ( " /api/users " );
Api:: post ( " /api/users/{id} " , @user);
?> Entonces, en la primera API, no proporcionamos un segundo parámetro para que el método se use, que por defecto es el método __invoke . Y en el segundo usamos el @user que decide el método user de la misma clase de controlador. El @ se dirige al nombre del método de la clase del controlador.
Primero creemos nuestra clase de controlador en el directorio de Controller/Api . Llamemos a UserController . En los nombres de nuestro controlador, es necesario que el Controller finalice un archivo, que describe un archivo del 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 );
}
}
?> En la clase UserController creamos los dos métodos funcionales y retomamos un formato JSON codificado.
Aún no ha hecho ... necesitamos registrar cada URL de rutas API para la clase de controlador en el archivo src/web.php .
<?php
use PhpSlides Controller UserController ;
return [
' /api/users ' => UserController::class,
' /api/users/{id} ' => UserController::class
];
?>Devolvimos las rutas API de registro ahora API está lista para ser consumida ❤️?.
¡Hurra mientras disfrutas usando PhPSlides!
Más funciones vienen en las próximas versiones