شروع کار با لاراول 7 : Directory Structure

مقدمه

ساختار پیش فرض برنامه Laravel در نظر گرفته شده است که یک نقطه شروع عالی برای برنامه های بزرگ و کوچک باشد. اما شما می توانید برنامه خود را هر طور که دوست دارید سازماندهی کنید. لاراول تقریباً هیچ محدودیتی برای مکان کلاس در نظر نمی گیرد - تا زمانی که composer بتواند کلاس را تأسیس کند.

دایرکتوری Model ها کجاست؟

هنگام شروع کار با Laravel ، بسیاری از توسعه دهندگان به خاطرنبود دایرکتوری model ها دچار سردرگمی می شوند. اما فقدان چنین دایرکتوری عمدی است.ما کلمه "models" را مبهم می بینیم زیرا این برای بسیاری از افراد مختلف معانی مختلفی دارد.برخی از توسعه دهندگان از "model" یک برنامه به عنوان business logic آن استفاده می کنند ، در حالی که برخی دیگر از "model" ها به عنوان کلاسهایی اشاره می کنند که با ریلیشن های یک بانک اطلاعاتی در تعامل است.

به همین دلیل ، ما تصمیم می گیریم که به طور پیش فرض ، Eloquent model ها را در دایرکتوری app  قرار دهیم و به توسعه دهنده این امکان را می دهیم که در صورت انتخاب ، آنها را در جایی دیگر قرار دهد.

فهرست مطالب

  • مقدمه
  • دایرکتوری root
    • دایرکتوری  app 
    • دایرکتوری  bootstrap
    • دایرکتوری config 
    • دایرکتوری database 
    • دایرکتوری public 
    • دایرکتوری resources 
    • دایرکتوری routes 
    • دایرکتوری storage 
    • دایرکتوری tests 
    • دایرکتوری vendor 
  • دایرکتوری App 
    • دایرکتوری Broadcasting 
    • دایرکتوری Console 
    • دایرکتوری Events 
    • دایرکتوری Exceptions 
    • دایرکتوری Http 
    • دایرکتوری Jobs 
    • دایرکتوری Listeners 
    • دایرکتوری Mail 
    • دایرکتوری Notifications 
    • دایرکتوری Policies 
    • دایرکتوری Providers 
    • دایرکتوری Rules 

دایرکتوری Root

دایرکتوری App

دایرکتوری app شامل کد اصلی برنامه شما است. ما به زودی این دایرکتوری را با جزئیات بیشتری بررسی خواهیم کرد. با این حال ، تقریباً تمام کلاسهای برنامه شما در این دایرکتوری قرار خواهند گرفت.

دایرکتوری Bootstrap

دایرکتوری bootstrap شامل فایل app.php است. این دایرکتوری همچنین دایرکتوری  cache را شامل می شود که شامل فایل های تولید شده  فریم ورک برای بهینه سازی عملکرد فایل های cache و route است.

دایرکتوری Config

همانطور که از نام آن پیداست، دایرکتوری config شامل تمام فایل های پیکربندی برنامه شما است. این ایده خوبی است که می توانید تمام این فایل ها را مطالعه کنید و با تمام گزینه های در دسترس شما آشنا شوید.

دایرکتوری Database

دایرکتوری database شامل database migrations ، model factories و seeds شما می باشد. در صورت تمایل ، می توانید از این دایرکتوری برای نگه داشتن بانک اطلاعاتی SQLite نیز استفاده کنید.

دایرکتوری Public

دایرکتوری public حاوی فایل index.php است ، که نقطه ورود کلیه درخواستهای وارد شده به برنامه شما و  تنظیمات autoloading است. این دایرکتوری همچنین asset های شما مانند تصاویر ، JavaScript و CSS را در خود جای داده است.

دایرکتوری Resources

فهرست resources  شامل view های شما و همچنین asset های کامپایل نشده مانند LESS ، SASS یا JavaScript می باشد. این دایرکتوری همچنین کلیه فایل هایlanguage را در خود جای داده است.

دایرکتوری Routes

دایرکتوری routes شامل همه تعریف های route برای برنامه شما است. به طور پیش فرض ، چندین فایل route با Laravel شامل : web.php ، api.php ،console.php و channels.php می باشد.

فایل web.php شامل route هایی است که RouteServiceProvider در گروه میان افزار web قرار می دهد ، و session state ،  CSRF protection و cookie encryption را فراهم میکند. اگر برنامه شما API RESTful را ارائه ندهد ، تمام روت های شما به احتمال زیاد در فایل web.php تعریف خواهند شد.

فایل api.php شامل روتی است که RouteServiceProvider در گروه api middleware قرار می دهد ، که این امر محدودیت ایجاد می کند. این روت ها stateless در نظر گرفته شده است ، بنابراین درخواست هایی که از طریق این route ها وارد برنامه شده اند از طریق token ها تأیید می شوند و به session state دسترسی نخواهند داشت.

فایل console.php جایی است که شما می توانید تمام دستورات کنسول مبتنی بر Closure را تعریف کنید. 

فایل channel.php جایی است که می توانید تمام event broadcasting channels ها را که برنامه شما پشتیبانی می کند ، ثبت کنید.


ادامه دارد...

سعید نصیری
سعید نصیری

من برنامه نویس لاراول، PHP و طراح سایت هستم. برنامه نویسی موبایل و تولید اپلیکیشن های موبایل نیز بخش دیگری از توانایی های فردی من هست. تقریبا ده دوازده سالی تجربه مستمر در زمینه طراحی سایت دارم و نزدیک به یک سال هم میشه که در برنامه نویسی موبایل وارد شده ام.