Crea una aplicación web en PHP más ordenada (P1 | Introducción y rutas)
HTML-код
- Опубликовано: 20 сен 2024
- Aprende como crear una aplicación web en PHP implementando un modelo muy simple y ordenado basado en rutas que sirve para cualquier tipo de aplicación o página web.
PHP es un lenguaje que hasta la fecha es muy poderoso y es el más utilizado para el desarrollo web, sin embargo a veces es despreciado debido a muchos factores y uno de esos es el "código espaguetti".
En esta serie de vídeos veremos como se puede mejorar la forma en la que utilizamos PHP para crear todo tipo de páginas y aplicaciones pequeñas y medianas de una manera organizada con un modelo sencillo y a su vez mostrarles que PHP sigue siendo muy poderoso si uno se organiza mejor.
· Follow me:
Patreon: / nickpashkov
Te devuelve en la pos 0 vacio porque explode() agarra el valor de la izquierda del separador que en este caso es el "/" sino tenes nada antes del "/" entonces es normal que devuelva 0, hay que tener en cuenta que hace tambien REQUEST_URI que a diferencia de cualquier otro metodo que agarre el PORT, request_uri solo agarra el request de la barra de direcciones que siempre esta despues del puerto. Osea, quitando el puerto lo que sigue es la uri que comienza por un espacio vacio seguido de la barra, seguido de otra cosa, la barra y asi hasta el infinito y mas alla. saludos.
Excelente trabajo, muchas gracias por la información !!
Excelente video, gracias
Muy buen tutorial amigo!
I'm proud of you
Gracias por hacer este vídeo, es muy útil y fácil de entender, sin embargo, el código que colocaste para lo de las uris, va a quedar en ese index.php? o se va a mover a otra ubicación?
buenas... ilustre y como se hace para la apariencia de la tienda "front end", como se haría entonces
Hola amigo, me hubiese gustado que empezaras diciendo con que sistema operativo vas a trabajar: Windows ? Linux ? etc.
Hola gracias por tu comentario! Particularmente en este tutorial puedes seguir los mismos pasos para todos los sistemas operativos, lo único que cambiaría es la instalación de php (que en windows tendrias que agregar el directorio al path), pero lo demás es practicamente igual. Saludos!
Como estás? Sigo exactamente estos pasos pero al tratar de ingresar a /content/1 sin el php me indica que no existe (404 not found). Estoy realizando esto sobre un hosting, no estaría entendiendo como corregirlo.
Hola! Depende de tu host, ya sea que es nginx o apache la configuración es diferente. Debes buscar cómo redireccionar todas las peticiones a index.php para que funcione
Hola, si tengo mi apache no va funcionar esto? me arroja el error 404, existe una forma en la que pueda configurar apache para que trabaje de esta forma
Claro, para eso ocupas configurar el archivo htaccess para que redireccione todas las peticiones a index.php, aqui te paso un link mediatemple.net/community/products/all/204643080/how-do-i-redirect-my-site-using-a-.htaccess-file
@@NickPashkov muchas gracias, eres muy amable
no entiendo por qué sale este error: Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Apache/2.4.38 (Debian) Server at localhost Port 8080
voy a investigar para ver qué tengo malo
Yo estoy trabajando con docker pero creo que esto puede ayudar a todas las personas que tengan el mismo problema, voy a dejar la solución.
* Solución 1 (gente que trabaja sin docker), editen el archivo /etc/apache2/sites-enabled/000-default.conf, cambien el contenido por esto:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ /index.php [QSA,L]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
*Solución 2 (gente que trabaja con docker):
-Lo primero es crear un archivo con extensión .conf, por ejemplo rest.conf
-Luego, agregan la configuración del virtualhost de la parte 1.
-Por último, agreguen esto en su Dockerfile :
RUN a2enmod rewrite
COPY rest.conf /etc/apache2/sites-enabled/000-default.conf
Min 19:10 añado una mejora para obtener la URI:
$uri = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, -1)) . '/';
$uri = substr(rawurldecode(($_SERVER["REQUEST_URI"] ?? "")), strlen($uri));
if (str_contains($uri, '?')) {
$uri = substr($uri, 0, strpos($uri, '?'));
}
$uri = '/' . trim($uri, '/');
var_dump("uri: $uri");