corso https://vola.udemy.com/course/php-mvc-from-scratch/learn/lecture/40931984#overview
filippo.bertilotti
2024-05-28 9630f55da81686cd33150cbc1a346bf9bf57ec7b
utilizzo dell'oggetto request nel controller e utilizzarlo al posto delle superglobals (parte 148)
3 files modified
22 ■■■■ changed files
src/App/Controllers/products.php 18 ●●●● patch | view | raw | blame | history
src/Framework/Dispatcher.php 2 ●●●●● patch | view | raw | blame | history
src/Framework/Request.php 2 ●●● patch | view | raw | blame | history
src/App/Controllers/products.php
@@ -2,8 +2,16 @@
namespace App\Controllers;
use App\Models\Product;
use Framework\Exceptions\PageNotFoundException;
use Framework\Request;
use Framework\Viewer;
class Products {
    private Request $request;
    public function setRequest(Request $request): void {
        $this->request = $request;
    }
    public function __construct(private Viewer $viewer, private Product $model) { }
    public function index() {
        
@@ -49,8 +57,8 @@
    public function create() {
        $data = [
            "name" => $_POST["name"],
            "description" => empty($_POST["description"]) ? null : $_POST["description"]
            "name" => $this->request->post["name"],
            "description" => empty($this->request->post["description"]) ? null : $this->request->post["description"]
        ];
        
        if($this->model->insert($data)) {
@@ -73,8 +81,8 @@
        $product = $this->getProduct($id);
        
        $product["name"] = $_POST["name"];
        $product["description"] = empty($_POST["description"]) ? null : $_POST["description"];
        $product["name"] = $this->request->post["name"];
        $product["description"] = empty($this->request->post["description"]) ? null : $this->request->post["description"];
        
        if($this->model->update($id, $product)) {
            header("Location: /products/{$id}/show");
@@ -125,4 +133,6 @@
        header("Location: /products/index");
        exit;
    }
}
src/Framework/Dispatcher.php
@@ -25,6 +25,8 @@
        $controller = $this->getControllerName($params);
        $controller_object = $this->container->get($controller);
        $controller_object->setRequest($request);
        $args = $this->getActionArguments($controller, $action, $params);
src/Framework/Request.php
@@ -15,7 +15,7 @@
        
    }
    public function createFromGlobals() {
    public static function createFromGlobals() {
        return new static(
            $_SERVER["REQUEST_URI"],
            $_SERVER["REQUEST_METHOD"],