Proyecto de ejemplo para gestionar clientes y créditos.
Aplicación Laravel (desarrollada para uso local) que permite crear, editar y listar clientes y creditos. Este repositorio está configurado para PHP 8.2 y Laravel 12.x.
- PHP 8.2 (CLI y módulo Apache si usas XAMPP)
- Composer
- Microsoft SQL Server (o instancia accesible)
- Extensiones PHP
sqlsrvypdo_sqlsrvpara PHP 8.2 (Windows/XAMPP) - Node.js + npm (para assets / Vite)
Sigue estos pasos para habilitar sqlsrv y pdo_sqlsrv con PHP 8.2 (Thread Safe, x64) en XAMPP:
-
Verifica la versión exacta de PHP usada por Apache. Puedes crear un archivo
phpinfo.phpenpubliccon<?php phpinfo();o ejecutarphp -ven la consola para comprobar la versión y si es TS (Thread Safe) o NTS. -
Descarga los drivers oficiales Microsoft Drivers for PHP for SQL Server: https://learn.microsoft.com/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver16
Descarga las DLLs compatibles con PHP 8.2 TS x64, por ejemplo:
php_sqlsrv_82_ts_x64.dllphp_pdo_sqlsrv_82_ts_x64.dll
-
Copia las DLLs descargadas a la carpeta de extensiones de PHP de XAMPP, por ejemplo
C:\xampp\php\ext. -
Edita el
php.inique usa Apache (p. ej.C:\xampp\php\php.ini) y añade las líneas:extension=php_sqlsrv_82_ts_x64.dll extension=php_pdo_sqlsrv_82_ts_x64.dll
Si las DLLs tienen otros nombres, puedes usar
extension=php_sqlsrv.dll/extension=php_pdo_sqlsrv.dllsiempre que apunten a los archivos correctos. -
Reinicia Apache desde el panel de control de XAMPP.
-
Verifica con
phpinfo()ophp -mque aparecensqlsrvypdo_sqlsrven los módulos cargados.
- Abre SQL Server Configuration Manager.
- Ve a
SQL Server Network Configuration→Protocols for <INSTANCE>y habilitaTCP/IP. - En las propiedades de
TCP/IP(pestaña IP Addresses) revisaIPAlly asegúrate de queTCP Portesté configurado en1433(o el puerto que uses). - Reinicia el servicio de SQL Server.
- Abre el Firewall de Windows y crea una regla de entrada para permitir
TCPen el puerto1433(o el puerto que uses) para el servicio de SQL Server.
Copia .env.example a .env y edita la sección de base de datos:
DB_CONNECTION=sqlsrv
DB_HOST=127.0.0.1
DB_PORT=1433
DB_DATABASE=nombre_bd
DB_USERNAME=usuario
DB_PASSWORD=secreto
Instala dependencias, genera la key, migra y siembra:
composer install
php artisan key:generate
php artisan migrate --seedSi prefieres usar SQLite para pruebas locales, el proyecto contiene database/database.sqlite como alternativa.
- Ejecuta
php artisan servey abrehttp://localhost:8000. - O usa XAMPP y configura un VirtualHost apuntando a la carpeta
public.
Si quieres, puedo añadir capturas de pantalla, instrucciones paso a paso para descargar las DLLs desde la página de Microsoft o una versión en inglés del README.
Listado simple de las rutas públicas definidas en routes/web.php:
- GET / → vista
welcome
Rutas para Clientes (prefijo /clientes):
- GET /clientes →
ClientesController@index(nombre:clientes.index) - GET /clientes/add → vista
clientes.create(nombre:clientes.create) - POST /clientes →
ClientesController@store(nombre:clientes.store) - GET /clientes/{id}/edit →
ClientesController@edit(nombre:clientes.edit) - PUT /clientes/{id} →
ClientesController@update(nombre:clientes.update) - DELETE /clientes/{id} →
ClientesController@destroy(nombre:clientes.destroy)
Rutas para Créditos (prefijo /creditos):
- GET /creditos →
CreditosController@index(nombre:creditos.index) - GET /creditos/create →
CreditosController@create(nombre:creditos.create) - POST /creditos →
CreditosController@store(nombre:creditos.store) - GET /creditos/{id} →
CreditosController@show(nombre:creditos.show) - GET /creditos/{id}/edit →
CreditosController@edit(nombre:creditos.edit) - PUT /creditos/{id} →
CreditosController@update(nombre:creditos.update) - DELETE /creditos/{id} →
CreditosController@destroy(nombre:creditos.destroy)
Si quieres, puedo añadir ejemplos de curl o Postman para probar las rutas.