بعد از این درس دقیقاً چه بلدی؟
- میتوانی «composer.json» را با مثال همین درس توضیح بدهی.
- میدانی «Namespace» کجای مسئله به کار میآید.
- تغییر پیشنهادی درس را اجرا میکنی و از روی نتیجه، اشتباه را پیدا میکنی.
فهرست کتابخانه
برای پیدا کردن هر کتاب کل انبار را نمیگردیم. نام و دستهبندی، جای آن را مشخص میکند. Namespace و PSR-4 همین نظم را برای کلاسها میسازند.
با بزرگشدن پروژه، require کردن دهها فایل شکننده میشود. Composer وابستگیها را مدیریت میکند و Autoload کلاسها را هنگام نیاز پیدا میکند.
چرا مهم است؟ قانون PSR-4 میگوید کلاسهای فضای نام App از پوشه src خوانده شوند؛ پس مسیر کلاس از نام آن قابل پیشبینی است.
اولین تمرین تو: قانون PSR-4 میگوید کلاسهای فضای نام App از پوشه src خوانده شوند؛ پس مسیر کلاس از نام آن قابل پیشبینی است.
اول بفهم، بعد کد بنویس
composer.json
وابستگیها و قانون Autoload پروژه را تعریف میکند.
Namespace
نام کامل کلاس را مشخص میکند و از برخورد نامها جلوگیری میکند.
vendor/autoload.php
فایل ورودی Autoload است و معمولاً یکبار در ابتدای برنامه بار میشود.
پیداکردن کلاس TaskService
قانون PSR-4 میگوید کلاسهای فضای نام App از پوشه src خوانده شوند؛ پس مسیر کلاس از نام آن قابل پیشبینی است.
قطعهها را به ترتیب درست بچین
روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمههای جابهجایی هم میتوانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.
کد را کامل کن و ساختار آن را بررسی کن
این درس وارد قابلیتهای سروری یا حرفهای شده است. برای امنیت سایت، کد دلخواه روی سرور اجرا نمیشود؛ بررسیگر، وجود اجزای ضروری و منطق مورد انتظار را کنترل میکند و راهنمای اصلاح میدهد.
کد را کامل کن و «بررسی ساختار» را بزن.
این مثال خطبهخط چه میگوید؟
فعلاً حفظ نکن؛ هر خط را به یک جمله ساده تبدیل کن.
- 1
{مرز یک بلوک یا فراخوانی در اینجا باز یا بسته میشود.
- 2
"autoload": {این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 3
"psr-4": {این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 4
"App\\": "src/"این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 5
}مرز یک بلوک یا فراخوانی در اینجا باز یا بسته میشود.
- 6
}مرز یک بلوک یا فراخوانی در اینجا باز یا بسته میشود.
- 7
}مرز یک بلوک یا فراخوانی در اینجا باز یا بسته میشود.
راهنماییها مرحلهای هستند؛ اول خودت پیام خطا را بخوان.
بعد از تعریف Autoload دستور composer dump-autoload را اجرا کن. سپس نام فایل را با نام کلاس ناهماهنگ کن و خطای Class not found را ردیابی کن.
از ساده به چالشی، بدون پرش
یکی از مقدارهای مثال را عوض کن، خروجی را روی کاغذ حدس بزن و سپس بررسی کن.
بعد از تعریف Autoload دستور composer dump-autoload را اجرا کن. سپس نام فایل را با نام کلاس ناهماهنگ کن و خطای Class not found را ردیابی کن.
سناریوی «پیداکردن کلاس TaskService» را با نامهای واضحتر و یک حالت تازه گسترش بده.
این سه اشتباه را انجام نده
بعد از تغییر composer.json، dump-autoload را اجرا نمیکنی.
حروف بزرگ و کوچک نام کلاس و مسیر یکسان نیستند.
پوشه vendor را دستی ویرایش میکنی.
5 پرسش کوتاه؛ مطمئن شو واقعاً یاد گرفتهای
برای هر پرسش یک پاسخ انتخاب کن. بعد از هر انتخاب، دلیل پاسخ را همانجا میبینی.
فایل vendor/autoload.php چه کاری میکند؟
کدام توضیح، «composer.json» را دقیقتر بیان میکند؟
بهترین قدم بعد از خواندن مثال این درس چیست؟
کدام روش نشان میدهد این درس را واقعاً فهمیدهای؟
کدام رفتار احتمال خطا را در همین موضوع بیشتر میکند؟
درس را فقط وقتی تمام کن که کد را تغییر دادهای
دیدن آموزش کافی نیست؛ یک مقدار را تغییر بده، خروجی را پیشبینی کن و بعد اجرا بزن.