بعد از این درس دقیقاً چه بلدی؟
- میتوانی «public» را با مثال همین درس توضیح بدهی.
- میدانی «src» کجای مسئله به کار میآید.
- تغییر پیشنهادی درس را اجرا میکنی و از روی نتیجه، اشتباه را پیدا میکنی.
آشپزخانه، صندوق و انبار جدا هستند
همه کارکنان یک رستوران وسط سالن یک کار را انجام نمیدهند. هر بخش مسئولیت و مرز خودش را دارد، اما برای تحویل سفارش با بخشهای دیگر همکاری میکند.
اگر اتصال دیتابیس، اعتبارسنجی، HTML و مسیرها همه در index.php باشند، هر تغییر خطرناک میشود. پوشهبندی خوب مسئولیتها را پیداکردنی و آزمونپذیر میکند.
چرا مهم است؟ index.php درخواست را تحویل میگیرد، Router مسیر را پیدا میکند و TaskController کار را به سرویس مناسب میسپارد.
اولین تمرین تو: index.php درخواست را تحویل میگیرد، Router مسیر را پیدا میکند و TaskController کار را به سرویس مناسب میسپارد.
اول بفهم، بعد کد بنویس
public
تنها پوشهای است که وبسرور باید مستقیم در دسترس قرار دهد.
src
کلاسها و منطق اصلی برنامه را نگه میدارد.
config و storage
تنظیمات و فایلهای تولیدشده را جدا میکنند؛ رازها نباید داخل مخزن باشند.
مرتبکردن پروژه مدیریت کارها
index.php درخواست را تحویل میگیرد، Router مسیر را پیدا میکند و TaskController کار را به سرویس مناسب میسپارد.
قطعهها را به ترتیب درست بچین
روی هر قطعه بزن تا وارد پاسخ شود؛ برای برگرداندن دوباره روی آن بزن. با دکمههای جابهجایی هم میتوانی بدون کشیدن و رهاکردن ترتیب را اصلاح کنی.
کد را کامل کن و ساختار آن را بررسی کن
این درس وارد قابلیتهای سروری یا حرفهای شده است. برای امنیت سایت، کد دلخواه روی سرور اجرا نمیشود؛ بررسیگر، وجود اجزای ضروری و منطق مورد انتظار را کنترل میکند و راهنمای اصلاح میدهد.
کد را کامل کن و «بررسی ساختار» را بزن.
این مثال خطبهخط چه میگوید؟
فعلاً حفظ نکن؛ هر خط را به یک جمله ساده تبدیل کن.
- 1
project/این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 2
├── public/این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 3
│ └── index.phpاین خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 4
├── src/این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 5
│ ├── Controller/این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 6
│ └── Service/این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 7
├── config/این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 8
├── tests/این خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
- 9
└── composer.jsonاین خط بخشی از منطق اصلی مثال است؛ نامها و علامتها را از راست به چپ، بخشبهبخش بخوان.
راهنماییها مرحلهای هستند؛ اول خودت پیام خطا را بخوان.
یکی از فایلهای پروژه فعلیات را در این درخت جای بده و دلیل انتخاب پوشه را بنویس. سپس بررسی کن هیچ رمز یا فایل env عمومی نشده باشد.
از ساده به چالشی، بدون پرش
یکی از مقدارهای مثال را عوض کن، خروجی را روی کاغذ حدس بزن و سپس بررسی کن.
یکی از فایلهای پروژه فعلیات را در این درخت جای بده و دلیل انتخاب پوشه را بنویس. سپس بررسی کن هیچ رمز یا فایل env عمومی نشده باشد.
سناریوی «مرتبکردن پروژه مدیریت کارها» را با نامهای واضحتر و یک حالت تازه گسترش بده.
این سه اشتباه را انجام نده
کل ریشه پروژه را DocumentRoot وبسرور میکنی.
کلاسها را بر اساس نوع فنی نامرتبط پخش میکنی و پیدا کردن یک قابلیت سخت میشود.
فایل .env واقعی را وارد Git میکنی.
5 پرسش کوتاه؛ مطمئن شو واقعاً یاد گرفتهای
برای هر پرسش یک پاسخ انتخاب کن. بعد از هر انتخاب، دلیل پاسخ را همانجا میبینی.
وبسرور بهتر است کدام پوشه را عمومی کند؟
کدام توضیح، «public» را دقیقتر بیان میکند؟
بهترین قدم بعد از خواندن مثال این درس چیست؟
کدام روش نشان میدهد این درس را واقعاً فهمیدهای؟
کدام رفتار احتمال خطا را در همین موضوع بیشتر میکند؟
درس را فقط وقتی تمام کن که کد را تغییر دادهای
دیدن آموزش کافی نیست؛ یک مقدار را تغییر بده، خروجی را پیشبینی کن و بعد اجرا بزن.