Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Aportes 25

Preguntas 15

Ordenar por:

Para los qu茅 usan XAMPP y no les sirve la redirecci贸n les dice: 鈥溌bjeto no localizado!鈥, creen un archivo llamado .htaccess en la carpeta public y dentro de 茅l coloquen lo siguiente:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Luego reinicien XAMPP y ya les deber铆a de funcionar.

Request


Siempre se emplea como聽namespace聽el聽directorio de la clase. No es obligatorio pero es lo m谩s recomendable.

Los聽namespaces聽proporcionan una forma de agrupar clases, interfaces, funciones y constantes relacionadas.

<?php

namespace App\Http;

class Request {
    protected $segments = [];
    protected $controller;
    protected $method;

    public function __construct() {
        $this->segments = explode('/', $_SERVER['REQUEST_URI']);
        
        $this->setController();
        $this->setMethod();
    }

    public function setController() {
        $this->controller = empty($this->segments[1])
            ? 'home'
            : $this->segments[1];
    }

    public function setMethod() {
        $this->method = empty($this->segments[2])
            ? 'index'
            : $this->segments[2];
    }
}

Una forma r谩pida para levantar un servidor sin usar apache ni nginx, es usando php

1- Entrar por terminal a la carpeta public/
2- ejecutar php -S localhost:3000
3- Entrar a localhost:3000 en el navegador

El namespace es indispensable para el funcionamiento del autoload es de car谩cter obligatorio colocarlo, si se nos hace tedioso dar con el namespace correcto hay IDE鈥檚 como PHPStorm que los colocan por defecto y en VSCODE extensiones que nos lo facilita.

Fatal error: Uncaught Error: Class 鈥楢pp\Http\Request鈥 not found in C:\xampp\htdocs\frameworks\public\index.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\frameworks\public\index.php on line 5

como puedo solucionar?

Me ha gustado la forma en que Italo ha llevado este curso.

No solamente tenemos que configurar el request, si no tambien un archivo llamado .htaccess el cual nos ayudara a la redirecci贸n

REQUEST_URI se entiende asi:

http://midominio.com/una/url/cualquiera?bar=foo

el valor de $_SERVER[鈥楻EQUEST_URI鈥橾

una/url/cualquiera?bar=foo

este curso me parece genial pero al probar el desarrollo en windows tengo problemas

Excelente clase Italo, es incre铆ble he trabajado con CodeIgniter, Laravel pero jam谩s me hab铆a preocupado por ver a profundidad como se realizaba esto, definitivamente esto abre mi mente grandemente鈥

hay un curso espefico para manejar esto de htaccess

Archivo Request.php

<?php

namespace App\Http;

class Request
{
    protected $segments = [];
    protected $controller;
    protected $method;

    public function __construct()
    {
        //iframeworks.test/
        $this->segments = explode('/',$_SERVER['REQUEST_URI']);

        $this->setController();
        $this->setMethod();
    }

    public function setController()
    {
        $this->controller = empty($this->segments[1])
            ? 'home'
            : $this->segments[1] ;
    }

    public function setMethod()
    {
        $this->method = empty($this->segments[2])
            ? 'index'
            : $this->segments[2] ;
    }
}

Excelente

Me da este error al correr php -S localhost:8000 en la carpeta public

En una entrevista de trabajo una de las preguntas fue: 驴C贸mo creas tu propio Framework MVC? La verdad nunca hab铆a reparado en pensar en eso, y la respuesta que en ese momento se me ocurri贸 no convenci贸 al entrevistador, por lo que despu茅s me pregunt贸: 驴C贸mo resuelves el enrutamiento? 鈥 De haber encontrado este curso antes, responder esa pregunta habr铆a sido mucho m谩s sencillo!

Me parece mas f谩cil escribir esto

public function setController(): void
    {
        $this->controller = $this->segments[1] ?? 'home';
    }

Reto realizado 馃

鈥淗acemos referencia al procesamiento en cuanto a la petici贸n鈥

Si se han equivocado como yo. Fijense muy bien si han escrito la palabra "鈥淩equest鈥 correctamente y no Resquest como yo hice uwu

No estoy muy de acuerdo con esa forma de colocar el operador ternario me parece dif铆cil de leer, estuve buscando alternativas en psr-12 y tampoco encontr茅 algo al respecto, pero entiendo la necesidad de recortar el largo de la l铆nea as铆 que opt茅 por hacer lo siguiente

public function setController()
    {
        $ControllerIsRequested = !empty($this->segments[1]);
        $this->controller = $ControllerIsRequested ? $this->segments[1] : "home";
    }

    public function setMethod()
    {
        $methodIsRequested = isset($this->segments[2]) && !empty($this->segments[2]);
        $this->method = $methodIsRequested ? $this->segments[2] : "index";
    }

Para los que est茅n usando Nginx y no les funciona el enrutamiento, deben hacer que el host siempre apunte al index.php y eso se lo consigue modificando el archivo del host, en mi caso la configuraci贸n queda de esta forma:

server {
	listen 80;
	listen [::]:80;

	server_name frameworksphp.com;

	root /var/www/frameworksPhp/public;
	index index.html index.php;

	location / {
		try_files $uri /index.php$is_args$args;
	}
	location ~ \.php$ {
        	include snippets/fastcgi-php.conf;
        	fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     	}

    	location ~ /\.ht {
        	deny all;
    	}
}

Me fue un poco complicado entenderlo pero creo que al final qued贸

Uso Php con Nginx y me sale 鈥404 Not Found鈥 驴que deber铆a configurar?

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Reg铆strate o inicia sesi贸n para participar.

Aportes 25

Preguntas 15

Ordenar por:

Para los qu茅 usan XAMPP y no les sirve la redirecci贸n les dice: 鈥溌bjeto no localizado!鈥, creen un archivo llamado .htaccess en la carpeta public y dentro de 茅l coloquen lo siguiente:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Luego reinicien XAMPP y ya les deber铆a de funcionar.

Request


Siempre se emplea como聽namespace聽el聽directorio de la clase. No es obligatorio pero es lo m谩s recomendable.

Los聽namespaces聽proporcionan una forma de agrupar clases, interfaces, funciones y constantes relacionadas.

<?php

namespace App\Http;

class Request {
    protected $segments = [];
    protected $controller;
    protected $method;

    public function __construct() {
        $this->segments = explode('/', $_SERVER['REQUEST_URI']);
        
        $this->setController();
        $this->setMethod();
    }

    public function setController() {
        $this->controller = empty($this->segments[1])
            ? 'home'
            : $this->segments[1];
    }

    public function setMethod() {
        $this->method = empty($this->segments[2])
            ? 'index'
            : $this->segments[2];
    }
}

Una forma r谩pida para levantar un servidor sin usar apache ni nginx, es usando php

1- Entrar por terminal a la carpeta public/
2- ejecutar php -S localhost:3000
3- Entrar a localhost:3000 en el navegador

El namespace es indispensable para el funcionamiento del autoload es de car谩cter obligatorio colocarlo, si se nos hace tedioso dar con el namespace correcto hay IDE鈥檚 como PHPStorm que los colocan por defecto y en VSCODE extensiones que nos lo facilita.

Fatal error: Uncaught Error: Class 鈥楢pp\Http\Request鈥 not found in C:\xampp\htdocs\frameworks\public\index.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\frameworks\public\index.php on line 5

como puedo solucionar?

Me ha gustado la forma en que Italo ha llevado este curso.

No solamente tenemos que configurar el request, si no tambien un archivo llamado .htaccess el cual nos ayudara a la redirecci贸n

REQUEST_URI se entiende asi:

http://midominio.com/una/url/cualquiera?bar=foo

el valor de $_SERVER[鈥楻EQUEST_URI鈥橾

una/url/cualquiera?bar=foo

este curso me parece genial pero al probar el desarrollo en windows tengo problemas

Excelente clase Italo, es incre铆ble he trabajado con CodeIgniter, Laravel pero jam谩s me hab铆a preocupado por ver a profundidad como se realizaba esto, definitivamente esto abre mi mente grandemente鈥

hay un curso espefico para manejar esto de htaccess

Archivo Request.php

<?php

namespace App\Http;

class Request
{
    protected $segments = [];
    protected $controller;
    protected $method;

    public function __construct()
    {
        //iframeworks.test/
        $this->segments = explode('/',$_SERVER['REQUEST_URI']);

        $this->setController();
        $this->setMethod();
    }

    public function setController()
    {
        $this->controller = empty($this->segments[1])
            ? 'home'
            : $this->segments[1] ;
    }

    public function setMethod()
    {
        $this->method = empty($this->segments[2])
            ? 'index'
            : $this->segments[2] ;
    }
}

Excelente

Me da este error al correr php -S localhost:8000 en la carpeta public

En una entrevista de trabajo una de las preguntas fue: 驴C贸mo creas tu propio Framework MVC? La verdad nunca hab铆a reparado en pensar en eso, y la respuesta que en ese momento se me ocurri贸 no convenci贸 al entrevistador, por lo que despu茅s me pregunt贸: 驴C贸mo resuelves el enrutamiento? 鈥 De haber encontrado este curso antes, responder esa pregunta habr铆a sido mucho m谩s sencillo!

Me parece mas f谩cil escribir esto

public function setController(): void
    {
        $this->controller = $this->segments[1] ?? 'home';
    }

Reto realizado 馃

鈥淗acemos referencia al procesamiento en cuanto a la petici贸n鈥

Si se han equivocado como yo. Fijense muy bien si han escrito la palabra "鈥淩equest鈥 correctamente y no Resquest como yo hice uwu

No estoy muy de acuerdo con esa forma de colocar el operador ternario me parece dif铆cil de leer, estuve buscando alternativas en psr-12 y tampoco encontr茅 algo al respecto, pero entiendo la necesidad de recortar el largo de la l铆nea as铆 que opt茅 por hacer lo siguiente

public function setController()
    {
        $ControllerIsRequested = !empty($this->segments[1]);
        $this->controller = $ControllerIsRequested ? $this->segments[1] : "home";
    }

    public function setMethod()
    {
        $methodIsRequested = isset($this->segments[2]) && !empty($this->segments[2]);
        $this->method = $methodIsRequested ? $this->segments[2] : "index";
    }

Para los que est茅n usando Nginx y no les funciona el enrutamiento, deben hacer que el host siempre apunte al index.php y eso se lo consigue modificando el archivo del host, en mi caso la configuraci贸n queda de esta forma:

server {
	listen 80;
	listen [::]:80;

	server_name frameworksphp.com;

	root /var/www/frameworksPhp/public;
	index index.html index.php;

	location / {
		try_files $uri /index.php$is_args$args;
	}
	location ~ \.php$ {
        	include snippets/fastcgi-php.conf;
        	fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     	}

    	location ~ /\.ht {
        	deny all;
    	}
}

Me fue un poco complicado entenderlo pero creo que al final qued贸

Uso Php con Nginx y me sale 鈥404 Not Found鈥 驴que deber铆a configurar?