سی ام اس نویسسی ام اس نویسیاد بگیر، سیستم خودتو بنویس
مجلهتماس با ما
سی ام اس نویسسی ام اس نویس

CMS نویس مرجعی برای آموزش برنامه نویسی وب و PHP، توسعه افزونه‌های اختصاصی وردپرس، طراحی ورک‌فلو و اتوماسیون با n8n و توسعه CMS های اختصاصی است. هدف ما ارائه آموزش‌های کاربردی و راهکارهای حرفه‌ای برای توسعه‌دهندگان، کسب‌وکارها و علاقه‌مندان به دنیای برنامه‌نویسی است.

پیوندهای سریع
محصولات فیزیکیمحصولات دیجیتالدوره‌های آموزشی
سی ام اس نویس
مجله سی ام اس نویستماس با ماپنل کاربری
سی ام اس نویس — تمامی حقوق برای سی ام اس نویس محفوظ است. © 1406 تماس با ما09307711941
Autoload در PHP چیست؟ آموزش Autoload و PSR-4 با Composer

Autoload در PHP چیست؟ آموزش Autoload و PSR-4 با Composer

ممدیر کل سیستم ۱۸ شهریور ۱۴۰۵ ۱۶ دقیقه مطالعه ۱ بازدید
Autoload در PHP چیست؟ آموزش Autoload و PSR-4 با Composer

در پروژه‌های ساده PHP ممکن است تعداد فایل‌ها و کلاس‌ها آن‌قدر کم باشد که بتوانیم آنها را با require یا require_once به صورت دستی وارد برنامه کنیم. اما با بزرگ‌تر شدن پروژه، تعداد کلاس‌ها افزایش پیدا می‌کند و مدیریت دستی فایل‌ها به یک مشکل جدی تبدیل می‌شود.

تصور کنید یک پروژه PHP شامل صدها کلاس باشد:


Models/

Services/

Repositories/

Controllers/

Helpers/

DTOs/

Exceptions/

اگر برای استفاده از هر کلاس مجبور باشیم مسیر فایل آن را به صورت دستی require کنیم، کد پروژه خیلی سریع پیچیده و غیرقابل نگهداری می‌شود.

اینجاست که مفهوم Autoload در PHP اهمیت پیدا می‌کند.

Autoloading به PHP اجازه می‌دهد هنگام استفاده از یک کلاس، فایل مربوط به آن را به صورت خودکار پیدا و بارگذاری کند.

در این مقاله یاد می‌گیریم:

  • Autoload در PHP چیست؟
  • چرا به Autoload نیاز داریم؟
  • require و require_once چه مشکلی ایجاد می‌کنند؟
  • spl_autoload_register چیست؟
  • چگونه یک Autoloader ساده در PHP بنویسیم؟
  • PSR-4 چیست؟
  • Composer چگونه Autoload را مدیریت می‌کند؟
  • composer.json چگونه برای PSR-4 تنظیم می‌شود؟
  • vendor/autoload.php چیست؟
  • چگونه Autoload را بهینه کنیم؟
  • و چه تفاوتی بین Autoload دستی و Composer Autoload وجود دارد؟

# Autoload در PHP چیست؟

Autoload یا Autoloading قابلیتی در PHP است که به برنامه اجازه می‌دهد فایل مربوط به یک کلاس را هنگام نیاز به صورت خودکار بارگذاری کند.

فرض کنید کلاس زیر را داریم:


class User

{

    public function login()

    {

        // ...

    }

}

و این کلاس داخل فایل:


User.php

قرار دارد.

اگر بخواهیم از آن در فایل دیگری استفاده کنیم، در روش سنتی باید بنویسیم:


require_once 'User.php';



$user = new User();

اما در پروژه‌های بزرگ نمی‌خواهیم برای هر کلاس چنین کاری انجام دهیم.

Autoload این فرآیند را خودکار می‌کند.


# چرا به Autoload نیاز داریم؟

فرض کنید پروژه ما شامل این کلاس‌ها باشد:


User.php

Product.php

Order.php

Payment.php

Invoice.php

UserService.php

ProductService.php

OrderRepository.php

بدون Autoload ممکن است فایل اصلی پروژه به چیزی شبیه این تبدیل شود:


require_once 'User.php';

require_once 'Product.php';

require_once 'Order.php';

require_once 'Payment.php';

require_once 'Invoice.php';

require_once 'UserService.php';

require_once 'ProductService.php';

require_once 'OrderRepository.php';

هرچه پروژه بزرگ‌تر شود، این روش سخت‌تر می‌شود.

Autoload باعث می‌شود فایل‌ها فقط زمانی که لازم هستند بارگذاری شوند.


# require و require_once در PHP

قبل از Autoload معمولاً برای وارد کردن فایل‌ها از:


require

یا:


require_once

استفاده می‌کنیم.

مثلاً:


require_once __DIR__ . '/User.php';



$user = new User();

این روش برای پروژه‌های کوچک قابل استفاده است، اما برای پروژه‌های بزرگ مدیریت آن دشوار می‌شود.


# Autoload چگونه مشکل را حل می‌کند؟

به جای اینکه بگوییم:


require_once 'User.php';

می‌توانیم یک Autoloader تعریف کنیم.

سپس فقط بنویسیم:


$user = new User();

PHP هنگام مشاهده کلاس User، Autoloader را اجرا می‌کند.

Autoloader فایل مربوط به کلاس را پیدا کرده و آن را Load می‌کند.

فرآیند ساده‌شده:


new User()

     ↓

PHP کلاس User را پیدا نمی‌کند

     ↓

Autoloader اجرا می‌شود

     ↓

User.php پیدا می‌شود

     ↓

فایل Load می‌شود

     ↓

Object ساخته می‌شود


# spl_autoload_register چیست؟

PHP برای ساخت Autoloader مکانیزم داخلی در اختیار ما قرار داده است.

یکی از مهم‌ترین توابع مربوط به این موضوع:


spl_autoload_register()

است.

با استفاده از این تابع می‌توانیم یک یا چند Autoloader ثبت کنیم.

مثلاً:


spl_autoload_register(function ($class) {

    require_once $class . '.php';

});

حالا اگر بنویسیم:


$user = new User();

PHP در صورت نیاز Callback ثبت‌شده را اجرا می‌کند.


# ساخت یک Autoloader ساده در PHP

فرض کنید ساختار پروژه این باشد:


project/

├── User.php

└── index.php

محتوای User.php:


<?php



class User

{

    public function sayHello()

    {

        echo "Hello User";

    }

}

حالا در index.php:


<?php



spl_autoload_register(function ($class) {

    require_once __DIR__ . '/' . $class . '.php';

});



$user = new User();



$user->sayHello();

بدون اینکه User.php را به صورت مستقیم require کنیم، PHP می‌تواند آن را از طریق Autoloader بارگذاری کند.


# Autoloader چه زمانی اجرا می‌شود؟

Autoloader زمانی اجرا می‌شود که PHP نیاز به یک کلاس، Interface، Trait یا موارد مشابه داشته باشد و آن مورد هنوز تعریف نشده باشد.

برای مثال:


$user = new User();

اگر کلاس User هنوز Load نشده باشد، PHP می‌تواند Autoloader ثبت‌شده را فراخوانی کند.


# Autoload با Namespace

در پروژه‌های حرفه‌ای PHP معمولاً کلاس‌ها با Namespace تعریف می‌شوند.

مثلاً:


namespace App\Models;



class User

{

}

برای استفاده:


use App\Models\User;



$user = new User();

حالا Autoloader باید بتواند Namespace را به مسیر فایل تبدیل کند.

مثلاً:


App\Models\User

به:


app/Models/User.php

تبدیل شود.

اینجاست که استانداردهایی مانند PSR-4 اهمیت پیدا می‌کنند.


# PSR-4 چیست؟

PSR-4 یک استاندارد برای Autoload کردن کلاس‌های PHP بر اساس Namespace و ساختار فایل‌ها است.

هدف PSR-4 این است که مشخص باشد یک Namespace چگونه به مسیر فایل مربوط به کلاس Mapping می‌شود.

مثلاً:


App\

را به:


app/

Mapping می‌کنیم.

بنابراین:


App\Models\User

می‌تواند به:


app/Models/User.php

Mapping شود.


# ساختار PSR-4

فرض کنید پروژه ما این ساختار را دارد:


project/

├── app/

│   ├── Models/

│   │   └── User.php

│   └── Services/

│       └── UserService.php

│

├── public/

│   └── index.php

│

└── composer.json

داخل User.php:


<?php



namespace App\Models;



class User

{

}

و در composer.json:


{

    "autoload": {

        "psr-4": {

            "App\\": "app/"

        }

    }

}

در اینجا:


App\

به:


app/

Mapping شده است.


# Composer Autoload چیست؟

Composer علاوه بر مدیریت Dependencyها، می‌تواند Autoload پروژه را نیز مدیریت کند.

این قابلیت یکی از مهم‌ترین دلایلی است که Composer در پروژه‌های حرفه‌ای PHP اهمیت دارد.

به جای نوشتن Autoloader دستی، می‌توانیم Mapping مربوط به Namespaceها را در composer.json تعریف کنیم.

Composer سپس Autoloader موردنیاز را تولید می‌کند.


# تنظیم PSR-4 در Composer

فرض کنید ساختار پروژه:


project/

├── src/

│   ├── Models/

│   │   └── User.php

│   └── Services/

│       └── UserService.php

│

└── composer.json

است.

در composer.json:


{

    "autoload": {

        "psr-4": {

            "App\\": "src/"

        }

    }

}

حالا Composer باید Autoload را تولید کند.

دستور:


composer dump-autoload

را اجرا کنید.


# composer dump-autoload چیست؟

دستور:


composer dump-autoload

برای بازسازی Autoloader Composer استفاده می‌شود.

مثلاً اگر تنظیمات زیر را تغییر دهید:


{

    "autoload": {

        "psr-4": {

            "App\\": "src/"

        }

    }

}

بعد از تغییر باید اجرا کنید:


composer dump-autoload

تا Composer اطلاعات جدید Autoload را تولید کند.


# vendor/autoload.php چیست؟

بعد از نصب Dependencyها و تولید Autoload، Composer فایل مهمی ایجاد می‌کند:


vendor/autoload.php

برای فعال کردن Composer Autoload معمولاً در نقطه ورود برنامه می‌نویسیم:


require __DIR__ . '/vendor/autoload.php';

بعد از آن می‌توانیم از کلاس‌های Packageها و کلاس‌های پروژه که در Autoload تعریف شده‌اند استفاده کنیم.


# یک مثال کامل با Composer

ساختار پروژه:


my-project/

├── src/

│   └── Models/

│       └── User.php

│

├── vendor/

├── composer.json

└── index.php

فایل User.php:


<?php



namespace App\Models;



class User

{

    public function getName(): string

    {

        return 'Saeed';

    }

}

فایل composer.json:


{

    "autoload": {

        "psr-4": {

            "App\\": "src/"

        }

    }

}

سپس:


composer dump-autoload

در index.php:


<?php



require __DIR__ . '/vendor/autoload.php';



use App\Models\User;



$user = new User();



echo $user->getName();

در این مثال هیچ require مستقیمی برای User.php وجود ندارد.

Composer بر اساس PSR-4 مسیر کلاس را پیدا می‌کند.


# PSR-4 چگونه کلاس را پیدا می‌کند؟

فرض کنید:


App\Models\User

کلاس ما باشد.

و Mapping زیر را داشته باشیم:


App\ → src/

Composer می‌تواند مسیر را به شکل زیر تشخیص دهد:


App\Models\User

       ↓

src/Models/User.php

یعنی:


Namespace Prefix

       +

Namespace Path

       +

Class Name

       ↓

File Path

این روش باعث می‌شود ساختار پروژه منظم و قابل پیش‌بینی باشد.


# قوانین مهم PSR-4

هنگام استفاده از PSR-4 باید به ساختار Namespace و مسیر فایل‌ها دقت کنید.

برای مثال اگر داشته باشیم:


namespace App\Services;

و کلاس:


class PaymentService

{

}

با Mapping:


App\ → src/

مسیر مورد انتظار می‌تواند باشد:


src/Services/PaymentService.php

بنابراین نام Namespace، نام Class و ساختار Directory باید با Mapping تعریف‌شده سازگار باشند.


# تفاوت Autoload دستی و Composer Autoload

ویژگیAutoload دستیComposer Autoload
نیاز به پیاده‌سازی دستیبلهمعمولاً خیر
مدیریت Namespaceمحدودتربسیار مناسب
PSR-4باید دستی پیاده شودپشتیبانی می‌شود
Dependencyهامدیریت نمی‌شودمدیریت می‌شود
مناسب پروژه بزرگمحدودبله
استاندارد بودنوابسته به پیاده‌سازیمبتنی بر استانداردهای رایج

برای پروژه‌های مدرن PHP معمولاً استفاده از Composer انتخاب مناسب‌تری است.


# Autoload در Laravel

اگر با Laravel کار می‌کنید، احتمالاً بیشتر اوقات نیازی نیست Autoload را به صورت دستی پیاده‌سازی کنید.

Laravel از Composer Autoload استفاده می‌کند.

ساختارهایی مانند:


app/

├── Models/

├── Http/

├── Services/

└── Repositories/

می‌توانند بر اساس Autoload و Namespaceهای پروژه مدیریت شوند.

برای مثال:


namespace App\Services;



class PaymentService

{

}

و سپس:


use App\Services\PaymentService;



$service = new PaymentService();

Composer می‌تواند کلاس را بر اساس Mapping مربوط به پروژه پیدا کند.


# Autoload و Dependency Injection

Autoload با Dependency Injection نیز ارتباط نزدیکی دارد.

فرض کنید:


class OrderService

{

    public function __construct(

        PaymentService $paymentService

    ) {

        $this->paymentService = $paymentService;

    }

}

قبل از اینکه Container بتواند Dependency را مدیریت کند، کلاس‌های موردنیاز باید برای PHP قابل دسترسی باشند.

Autoload یکی از زیرساخت‌های مهم برای چنین معماری‌هایی است.

در Frameworkهایی مانند Laravel، این فرآیند در کنار Service Container و سایر قابلیت‌های Framework انجام می‌شود.


# Autoload و OOP در PHP

هرچه پروژه بیشتر به سمت Object-Oriented Programming حرکت کند، تعداد کلاس‌ها نیز بیشتر می‌شود.

برای مثال:


User

Product

Order

Payment

Invoice

Repository

Service

Controller

DTO

Exception

در یک پروژه واقعی ممکن است صدها کلاس وجود داشته باشد.

به همین دلیل Autoload یکی از اجزای مهم معماری پروژه‌های Object-Oriented PHP است.


# Optimize کردن Composer Autoload

در پروژه‌های Production می‌توان Autoload را Optimize کرد.

مثلاً:


composer dump-autoload -o

یا:


composer dump-autoload --optimize

این کار می‌تواند Autoloader را برای محیط Production بهینه‌تر کند.

همچنین هنگام نصب Dependencyها می‌توان از:


composer install --no-dev --optimize-autoloader

استفاده کرد.


# Autoload فقط برای Class است؟

در کاربرد رایج، Autoload بیشتر برای کلاس‌ها، Interfaceها و Traitها مطرح می‌شود.

Composer همچنین امکان تعریف انواع مختلف Autoload را فراهم می‌کند.

اما در معماری مدرن PHP، PSR-4 Class Autoloading یکی از مهم‌ترین و رایج‌ترین روش‌هاست.


# PSR-0 و PSR-4

ممکن است در منابع قدیمی PHP با PSR-0 نیز مواجه شوید.

PSR-0 استاندارد قدیمی‌تری برای Autoloading بود.

امروزه PSR-4 روش مدرن‌تر و رایج‌تری برای Autoloading بر اساس Namespace محسوب می‌شود.

بنابراین اگر در حال ساخت پروژه جدید PHP هستید، بهتر است تمرکز اصلی شما روی PSR-4 باشد.


# خطاهای رایج در Autoload

یکی از خطاهای رایج:


Class "App\Models\User" not found

است.

این خطا می‌تواند دلایل مختلفی داشته باشد.

۱. Namespace اشتباه

مثلاً فایل نوشته:


namespace App\Model;

اما در جای دیگری استفاده شده:


use App\Models\User;

۲. مسیر فایل اشتباه

مثلاً Composer انتظار دارد:


src/Models/User.php

وجود داشته باشد اما فایل در مسیر دیگری قرار گرفته است.

۳. Autoload بازسازی نشده است

اگر composer.json را تغییر داده‌اید:


composer dump-autoload

را اجرا کنید.

۴. Case حساس بودن مسیرها

در Linux تفاوت بین:


User.php

و:


user.php

اهمیت دارد.

بنابراین نام فایل و Namespace باید با ساختار واقعی پروژه سازگار باشند.


# بررسی تنظیمات Autoload

اگر Autoload پروژه کار نمی‌کند، ابتدا composer.json را بررسی کنید.

مثلاً:


{

    "autoload": {

        "psr-4": {

            "App\\": "src/"

        }

    }

}

سپس:


composer dump-autoload

را اجرا کنید.

در صورت وجود مشکل، ساختار Directory، Namespace و نام Class را بررسی کنید.


# اشتباه رایج: استفاده از مسیر اشتباه

فرض کنید این Mapping را داریم:


{

    "autoload": {

        "psr-4": {

            "App\\": "src/"

        }

    }

}

و کلاس:


namespace App\Models;



class User

{

}

در این حالت مسیر مورد انتظار:


src/Models/User.php

است.

اگر فایل را در:


src/User.php

قرار دهید، Mapping دیگر با ساختار کلاس سازگار نیست.


# اشتباه رایج: فراموش کردن composer dump-autoload

یکی از رایج‌ترین مشکلات هنگام تغییر Autoload این است که Developer تنظیمات composer.json را تغییر می‌دهد اما Autoloader را بازسازی نمی‌کند.

بعد از تغییر تنظیمات Autoload اجرا کنید:


composer dump-autoload


# Autoload در Production

در محیط Production بهتر است Dependencyها و Autoload مطابق نسخه تست‌شده پروژه نصب شوند.

یک دستور متداول:


composer install --no-dev --optimize-autoloader

است.

در این حالت:

  • Dependencyهای Development نصب نمی‌شوند.
  • Autoloader بهینه می‌شود.
  • نسخه‌های ثبت‌شده در Lock File مورد استفاده قرار می‌گیرند.

البته فرآیند دقیق Deployment به معماری پروژه بستگی دارد.


# آیا Composer تنها راه Autoload است؟

خیر.

PHP خودش امکاناتی مانند:


spl_autoload_register()

در اختیار Developer قرار می‌دهد.

اما در پروژه‌های حرفه‌ای که Dependencyهای مختلف دارند، Composer یک راه استاندارد و بسیار کاربردی برای مدیریت Dependency و Autoload فراهم می‌کند.


# چه زمانی Autoload دستی مناسب است؟

برای پروژه‌های آموزشی یا بسیار کوچک، ساخت یک Autoloader دستی می‌تواند روش خوبی برای یادگیری باشد.

مثلاً:


spl_autoload_register(function ($class) {

    require_once __DIR__ . '/src/' . $class . '.php';

});

این کار به شما کمک می‌کند مفهوم Autoload را درک کنید.

اما در پروژه‌های بزرگ بهتر است از راهکار استاندارد و قابل نگهداری استفاده شود.


# بهترین روش برای پروژه‌های حرفه‌ای PHP

اگر پروژه شما یک Application واقعی است، پیشنهاد می‌شود:

  1. از Composer استفاده کنید.
  2. Namespaceهای استاندارد تعریف کنید.
  3. از PSR-4 برای Class Autoloading استفاده کنید.
  4. composer.json را در Git نگه دارید.
  5. composer.lock را برای Applicationها جدی بگیرید.
  6. vendor/ را معمولاً Commit نکنید.
  7. بعد از تغییر Autoload، composer dump-autoload اجرا کنید.
  8. در Production Autoload را Optimize کنید.
  9. نام فایل و Class را به صورت منظم و سازگار نگه دارید.

# مثال ساختار حرفه‌ای PHP

یک پروژه نسبتاً استاندارد می‌تواند چنین ساختاری داشته باشد:


project/

│

├── src/

│   ├── Models/

│   │   ├── User.php

│   │   └── Product.php

│   │

│   ├── Services/

│   │   ├── UserService.php

│   │   └── PaymentService.php

│   │

│   └── Repositories/

│       └── UserRepository.php

│

├── tests/

│

├── public/

│   └── index.php

│

├── vendor/

│

├── composer.json

└── composer.lock

در composer.json:


{

    "autoload": {

        "psr-4": {

            "App\\": "src/"

        }

    }

}

و در نقطه ورود:


require __DIR__ . '/../vendor/autoload.php';

اکنون کلاس‌هایی مانند:


App\Models\User

App\Models\Product

App\Services\UserService

App\Services\PaymentService

می‌توانند بدون require دستی فایل‌هایشان استفاده شوند.


# ارتباط Autoload با معماری مدرن PHP

اگر مسیر یادگیری PHP شما قرار است به توسعه حرفه‌ای با Laravel و ساخت Applicationهای بزرگ برسد، Autoload یکی از مفاهیمی است که باید به خوبی درک کنید.

Autoload در کنار مفاهیمی مانند:


Namespace

OOP

Interface

Dependency Injection

SOLID

Design Patterns

Composer

PSR

قرار می‌گیرد.

در واقع وقتی این مفاهیم را کنار هم قرار می‌دهید، ساختار پروژه‌های حرفه‌ای PHP را بهتر درک خواهید کرد.


# جمع‌بندی

Autoload در PHP روشی برای بارگذاری خودکار کلاس‌ها و جلوگیری از require کردن دستی فایل‌ها است.

در پروژه‌های کوچک می‌توان با:


spl_autoload_register()

یک Autoloader ساده ایجاد کرد.

اما در پروژه‌های حرفه‌ای معمولاً Composer انتخاب مناسب‌تری است.

با تعریف:


{

    "autoload": {

        "psr-4": {

            "App\\": "src/"

        }

    }

}

می‌توان Namespaceها را به Directoryهای پروژه Mapping کرد.

سپس با:


composer dump-autoload

Autoloader تولید می‌شود و با:


require __DIR__ . '/vendor/autoload.php';

در اختیار Application قرار می‌گیرد.

در نتیجه به جای:


require_once 'User.php';

require_once 'Product.php';

require_once 'Order.php';

می‌توانیم مستقیماً از کلاس‌ها استفاده کنیم:


$user = new User();

$product = new Product();

$order = new Order();

و Composer مسئول پیدا کردن و بارگذاری کلاس‌ها خواهد بود.


# سوالات متداول Autoload در PHP

Autoload در PHP چیست؟

Autoload قابلیتی برای بارگذاری خودکار کلاس‌ها و جلوگیری از نیاز به require یا require_once دستی فایل‌های کلاس است.

spl_autoload_register چیست؟

spl_autoload_register() یک تابع داخلی PHP است که برای ثبت یک یا چند Autoloader استفاده می‌شود.

Composer Autoload چیست؟

Composer می‌تواند بر اساس تنظیمات composer.json یک Autoloader ایجاد کند و کلاس‌ها و Dependencyهای پروژه را به صورت خودکار Load کند.

PSR-4 چیست؟

PSR-4 استانداردی برای Autoloading کلاس‌های PHP بر اساس Namespace و ساختار فایل‌ها است.

composer dump-autoload چه کاری انجام می‌دهد؟

این دستور Autoloader Composer را مجدداً تولید می‌کند و بعد از تغییر تنظیمات Autoload پروژه کاربرد دارد.

vendor/autoload.php چیست؟

فایلی است که Composer برای راه‌اندازی Autoload خود تولید می‌کند و معمولاً در ابتدای Application با require وارد می‌شود.

آیا Autoload در Laravel استفاده می‌شود؟

بله. Laravel از Composer برای مدیریت Dependencyها و Autoloading پروژه استفاده می‌کند.

چرا Class Not Found دریافت می‌کنیم؟

دلایل مختلفی مانند Namespace اشتباه، مسیر فایل نادرست، عدم اجرای composer dump-autoload یا ناسازگاری Case نام فایل و کلاس می‌تواند باعث این خطا شود.

آیا باید Autoload را خودمان در Laravel بنویسیم؟

در حالت معمول خیر. Laravel و Composer بخش عمده فرآیند Autoloading را مدیریت می‌کنند؛ اما درک نحوه کار آن برای توسعه‌دهنده Laravel بسیار مهم است.


# مقالات مرتبط

برای تقویت ساختار لینک‌سازی داخلی Cluster آموزش PHP، در این مقاله به شکل طبیعی به صفحات زیر لینک بده:

  • Composer چیست؟
  • آموزش Composer
  • Namespace در PHP
  • OOP در PHP
  • Class و Object در PHP
  • Interface در PHP
  • Dependency Injection در PHP
  • SOLID در PHP
  • Design Pattern در PHP
  • REST API با PHP

همچنین یک لینک به Pillar اصلی آموزش برنامه نویسی وب و PHP قرار بده.

نظرات (0)

نظرات پس از تأیید مدیر نمایش داده می‌شوند

هنوز نظری ثبت نشده است؛ اولین نفر باشید!

مقالات مرتبط

ساخت CMS با Laravel 12؛ آموزش ساخت سیستم مدیریت محتوا از صفر

ساخت CMS با Laravel 12؛ آموزش ساخت سیستم مدیریت محتوا از صفر

۲۴ دقیقه
ساخت فروشگاه اینترنتی با Laravel 12؛ آموزش پروژه‌محور از صفر تا طراحی هسته فروشگاه

ساخت فروشگاه اینترنتی با Laravel 12؛ آموزش پروژه‌محور از صفر تا طراحی هسته فروشگاه

۲۲ دقیقه
ساخت Marketplace با Laravel؛ آموزش طراحی فروشگاه چندفروشندگی

ساخت Marketplace با Laravel؛ آموزش طراحی فروشگاه چندفروشندگی

۲۲ دقیقه
مدیریت Queueهای سنگین در Laravel؛ آموزش پردازش کارهای طولانی

مدیریت Queueهای سنگین در Laravel؛ آموزش پردازش کارهای طولانی

۲۲ دقیقه