BaseMax / PharmacyMVCPHP

A Pharmacy Management System built with PHP using the MVC architecture. The system will provide API endpoints for managing the inventory and orders of a pharmacy.
GNU General Public License v3.0
2 stars 0 forks source link

سوال و پرسش - بررسی - نقد - پیشنهاد - نظر #1

Open BaseMax opened 1 year ago

BaseMax commented 1 year ago

replace, regex

replace /{([a-zA-Z]+)}/ to ([^\/]+) or (?<$1>[^\/]+)

بعد که replace کردید حالا با regex preg_match چک کنید.

regex و دو تا ورودی هارو لاگ بگیر.

خروجی preg هم لاگ کن.

$path = "/api/users/{id}"; $uri = "/api/users/12";

$newPath = str_replace("{id}", "([^\/]+)", $path); $newPath = "\/api\/users\/([^\/]+)"; var_dump( preg_match('/^' . $newPath . '$/', $uri, $matches) );

$newPath = "\/api\/users\/([^\/]+)";

replace '/' to '\/'

BaseMax commented 1 year ago
    $database = new Database();
    return $database->Update(self::$tableName, $id, $columns, $values);

در چنین توابعی قبل از return یک خط اضافه بزارید کلا اصولا return رو در خط جدا قرار بدهیم بهتر است.

BaseMax commented 1 year ago

توی فایل مدل دراگ توابعی که دارید صدا میزنید همه با حرف بزرگ شده شروع جز این: public static function get(int|null $id = null) { $database = new Database();

    return $database->get(self::$tableName, $id);
}

بهتره این هم مثل دیگری بشود.

BaseMax commented 1 year ago
    $database = new Database();

    return $database->Update(self::$tableName, $id, $columns, $values);

چنین دستوراتی که به متغییر اش نیازی نداریم رو میتونیم مستقیم new کنیم بدون ذخیره کردن در متغییر و فوری صدا بزنیم از پرانتز هم کمک بگیرید (new name)

BaseMax commented 1 year ago


Warning: Undefined array key 1 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 30

Warning: Undefined array key 0 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 31

Warning: Undefined array key 1 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 30

Warning: Undefined array key 0 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 31

Warning: Undefined array key 1 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 30

Warning: Undefined array key 0 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 31

Warning: Undefined array key 1 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 30

Warning: Undefined array key 0 in C:\Users\Max\PharmacyMVCPHP\app\Application\Facades\Params.php on line 31
{"detail":"Not found."}

باگ داره حل میکنم.

حل شد.

BaseMax commented 1 year ago

Routes.php routes.php چنین فایلی توی پروژه نیست.

BaseMax commented 1 year ago

Max Base, [4/21/2023 9:46 AM] public array $routes = [ "get" => [], "post" => [], "delete" => [], "put" => [], "fallback" ];

Max Base, [4/21/2023 9:46 AM] اخری رو برابر نال میتونستید بزارید و موقع صدا زدن callback هم چک کنید نال نباشه

BaseMax commented 1 year ago

Max Base, [4/21/2023 9:46 AM]

<?php

use App\Controllers\AuthenticationController;
use App\Controllers\InventoryController;
use App\Controllers\OrdersController;
use App\Application\Response\Response;

// Inventory Endpoints

$app->get("/api/inventory", [InventoryController::class, "index"]);

Max Base, [4/21/2023 9:46 AM] قبلا گفتم و اصولا حرف تکراری نمیزنم توی فال ها اگه مستقیم کسی ران کنه خطا میخوره

Max Base, [4/21/2023 9:46 AM] باید جلوی این رو بگیرید

Max Base, [4/21/2023 9:46 AM] قبلا با مثال توضیح دادم.

BaseMax commented 1 year ago
    if ($id) $where = " WHERE `id` = $id";

کد اینطوری ننویسید دقیق و شفاف و کامل بنویسید اگر نال نبود ان موقع شرط اجرا بشود. کد اینطوری بدرد نمیخوره.

BaseMax commented 1 year ago

توی ریدمی در مورد SECRET_KEY توضیحی ندادید.