۱ محمدجوکار
namespace IN composer.json
جامعه پی اچ پی ایجاد شده در ۳۰ بهمن ۱۴۰۱

باسلام

من دقیقا متوجه نشدم که این بخشی که namespace هست یعنی چی؟؟

73dd-Screenshot (737).pngدر حقیقت میدونم namespace‌ها چی هستند ولی اینکه اینجا به عنوان اولین پارامتر باید وارد بشه نمیفهمم چیه؟؟؟؟

در آموزش گفته شد اگر مثل تصویر پایین مثلا به جای root namespace بخواد a قرار بگیره، دیگه باید جلوی همه‌ی namespace‌ها هم همین حرف قرار داده بشه. البته هرچند که الان App\\\\ قرار داده شده.

8106-Screenshot (736).png

خب این یعنی چی؟؟؟؟

مثلا من اگه بخوام به‌جای root namespace بزارم پرتقال، اونوقت چی؟ باید جلوی همه‌ی namespace‌ها بنویسم پرتقال؟؟؟؟

حتی اگه حرفم درست باشه هم باز نمیفهممش.

ممنون میشم یه توضیح بدید

سلام

ببینید وقتی بجای root namespace مثلا App میزارید یعنی فایلی که داخل پوشه app میسازید، باید namespace که تعریف کردید بزارید که در اینجا مثالمون App هست. حالا مثلا توی یک فایل دیگه از اون فایل قبلی میخوایم استفاده کنیم، حالا باید بر اساس همون namespace فایل رو use کنیم.

مثال:

// Class DB
// Folder app/database
namespace App/Database;
class DB {}
------------------
// Class User
// Folder app/models
namespace App/Models;
use App/Database;
Class User {
    private function getConnectuion(){
        $db = new DB();
        // ...
    }
}
------------------
// Class Test
// Folder test
namespace Test;
Class Test {}
--------------------
// composer.json
{
    ...
    "autoload": {
        "psr-4": {
            "App\\": "app",
            "Test\\\\": "test\\",
        }
    }
    ...
}

در مثال بالا چون ما از psr-4 استفاده کردیم، نیم اسپیس App بر اساس استاندارد لود میشه فایل‌ها و هرچی فولدر داخلی داشته باشیم رو باید توی نیم اسپیس ذکر کنیم، که ما اینجا فولدر Models و Database رو داریم. (لینک مرجع برای مطالعه در مورد psr-4)

بهترین پاسخ
صادق برزگر ۳۰ بهمن ۱۴۰۱، ۱۶:۴۵