استفاده از composer
چطور میشه فریمورک استاد رو با کامپوزر مچ کرد؟ کسی از دوستان این کار رو انجام داده؟
خودم حلش کردم ... خخخ ... پس انجمن اینجوری کار میکنه ... اینقدر جواب نمی دن تا خودت حلش کنی
لطفا راهنمایی بفرمایید
چون منم میخوام این کارو بکنم
چجوری انجام دادید؟
من برای اینکه این مشکل حل بشه کارهای زیر انجام دادم ( اما نمیدونم در آینده این روش باعث بشه به مشکل بخورم یا خیر ، اما در حال حاضر داره درست کار میکنه ).
اول اینکه در فایل index.php که همون روتر ما هست این خط اضافه کردم ، همچنین در داخل فایل loader.php دستور مربوط به load کردن فایل core.php را غیر فعال کردم.
// Add This Line in index.php
require_once(getcwd() . '/vendor/autoload.php')
بعد هم داخل فایل composer.json خط autoload اضافه کردم.
فقط بعد از اضافه کردن فایل جدید باید دستور زیر را در محیط ترمینال اجرا نمائید در غیر این صورت با خطا مواجه می شوید.
composer dump-autoload
{
"require": {
"monolog/monolog": "^2.3"
},
"autoload": {
"classmap": ["mvc/model", "mvc/service", "mvc/controller"]
}
}
این خطو در فایل system/loader.php اضافه کنید:
require_once(getcwd() . '/vendor/autoload.php')
برای مثال میخوام از پکیج phpdotenv در پروژه استفاده کنم. کافیه در روت پروژه دستور composer رو در ترمینال صدا بزنم:
composer require vlucas/phpdotenv
بعد اینکه نصب شد، کافیه یک فایل در مسیر دلخواه(پیش فرض root پروژه) با نام .env میسازم و کانفیگ ها و مقادیر مهمو داخلش قرار میدم:
DB_NAME=uncox
DB_USER=root
DB_PASS=123
SITE_URL=https://uncox.com/
بعد کافیه دستور پایینو در فایلی مثل system/loader.php بذارم تا در تمام صفحات پروژه به مقادیر فایل .env بتونم دسترسی داشته باشم:
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
__DIR__ که گذاشتم شما باید مسیر درست فایل .env نسبت به دایرکتوری که این کدو قرار میدید بذارید. اگر دوتا فایل کنار هم هستن __DIR__ وگرنه باید مسیر درستو بنویسید.
حالا هر کجا از صفحات پروژه میتونید راحت به مقادیر .env دسترسی داشته باشید:
var_dump($_ENV);
پس نکته ای که برای استفاده از فایل های composer بود، اینه که کلاس هارو با namespace اشون ذکر بشه.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .