Hoy, me desafié a mí mismo a implementar un enfoque Laravel MVC (modelo, vista, controlador) utilizando PHP puro. Para abordar esto, utilicé el motor de plantillas estándar Laravel Blade para la parte de vista del proyecto, pero sin instalar Laravel ya que mi proyecto es PHP puramente básico. Así es como logré esta integración;
Comencé instalando un paquete llamado Blade de JensSegers usando el siguiente comando de Composer:
composer require jenssegers/blade
Este paquete permite utilizar el motor de plantillas Blade como un paquete independiente, haciéndolo compatible con cualquier proyecto PHP, no solo con Laravel.
A continuación, ejecuté el siguiente comando para actualizar la dependencia de iluminación/vista del paquete a la versión 11.7.0, ya que el paquete no funciona correctamente con versiones inferiores a 11.7.0:
composer require illuminate/view:11.7.0
Luego, creé una base de datos llamada "pdotest" con una tabla llamada "publicación", que tiene las columnas "nombre" y "cuerpo". Llené esta tabla con datos ("este es el nombre de la publicación de la base de datos que se muestra usando el motor de plantilla Blade", "este es el cuerpo de la publicación de la base de datos que se muestra usando el motor de plantilla Blade") respectivamente y me conecté a ella creando el archivo Database.php en la raíz de mi proyecto y ponga el siguiente código:
host;dbname=$this->database",$this->username,$this->password); // $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // $conn = $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); return $conn; } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } } } ?>
A continuación, creé un directorio llamado "Modelos" para todas las manipulaciones de la base de datos. Dentro de este directorio, creé un archivo llamado Post.php para manejar las operaciones en la tabla "post". Dentro de este archivo, definí un método llamado publicación para recuperar una publicación por su ID, como se muestra a continuación:
conn = (new Database)->connect(); // Access directly (less secure) } public function getPost($id){ $stmt= "SELECT * FROM $this->table WHERE id = :id"; $stmt = $this->conn->prepare($stmt); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->execute(); return $result = $stmt->fetch(); } } ?>
A continuación, creé index.php para que actuara como enrutador, conectando mi controlador, vista y modelo. Dentro de él, importé todas mis vistas y rutas de caché, que crearé para colocar mis vistas de Blade y archivos de caché. Luego, estas rutas se pasaron a la clase Blade, que viene con el paquete Blade que instalamos al principio. Luego pasé esta instancia de Blade a la clase PostController, que crearé, y llamé al método de publicación de esa clase para obtener una publicación por su ID en el futuro.
post(); ?>
Luego, creé un directorio de "controladores" en la raíz de mi proyecto. Dentro de él, recibí la variable Blade de index.php (el enrutador), llamé al método getPost del modelo Post para obtener una publicación por su ID y pasé esa publicación a una vista Blade llamada "página de inicio".
blade = $blade; } public function post(){ $post = (new Post)->getPost(1); echo $this->blade->render('homepage', ['post' => $post]); } } ?>
Luego, creé un directorio llamado "vistas" y un archivo llamado homepage.blade.php en la raíz del proyecto. Dentro de este archivo, simplemente mostré el nombre de la publicación transmitida desde PostController, como se muestra a continuación:
{{$post['name']}}
Finalmente, creé un directorio de "caché" en la raíz de mi proyecto para almacenar archivos de caché de Blade, lo que ayuda a mejorar el rendimiento de mi proyecto.
Ahora, cuando visites http://localhost/laravel-blade- without-laravel/index.php en tu navegador, verás el nombre de la publicación mostrado como "este es el nombre de la publicación de la base de datos que se muestra usando la plantilla Blade". motor."
Gracias por seguir esta publicación sobre el uso del motor de plantillas Laravel Blade en un proyecto PHP puro. Espero que te ayude en tu viaje de desarrollo. Mi nombre es Waziri Ally Amiri, un desarrollador web de Moshi, Tanzania. Me especializo en trabajar con Laravel y me encanta ayudar a otros a comenzar con este poderoso marco. No dudes en comunicarte con nosotros si tienes alguna pregunta o necesitas más ayuda.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3