laravel

پلتفرم Laravel

(Laravel Platform)

اتصال به دیتابیس‌ها

در صورتی که تمایلی به خواندن آموزش متنی ندارید می‌توانید ویدیوی آموزشی زیر ‌را مشاهده کنید.

به‌ندرت پیش‌ می‌آید که در برنامه‌ای از دیتابیس استفاده نشده ‌باشد. اگر در برنامه Laravel خود، از دیتابیس استفاده کرده‌اید می‌توانید به‌این‌صورت به آن متصل شوید.

از هر دیتابیسی که لاراول پشتیبانی می‌کند می‌توانید استفاده کنید. صرفا کافیست که اطلاعات اتصال به دیتابیسی که ساخته‌اید را از بخش متغیرها برای برنامه‌ی‌تان تنظیم کنید. برای نمونه، در ادامه اطلاعات اتصال به یک دیتابیس MySQL را قرار داده‌ایم:

DB_CONNECTION=mysql
DB_HOST=s11.liara.ir
DB_PORT=3306
DB_DATABASE=laravel-starter-db
DB_USERNAME=root
DB_PASSWORD=xxxxxxxxxxxx
توجه داشته باشید که اطلاعات بالا همگی صرفا برای نمونه وارد شده‌اند. شما باید متناسب با اطلاعات دیتابیس خودتان مقادیر را جایگذاری کنید.

قابلیت Connection Pooling

شما می‌توانید در برنامه Laravel خود، قابلیت Connection Pooling را نیز فعال کنید. در Connection Pooling برنامه به جای ایجاد یک ارتباط (Connection) جدید برای انجام عملیات دیتابیسی و بستن آن پس از پایان عملیات، از ارتباط‌هایی که قبلاً ایجاد شده‌اند، استفاده می‌کند.

استفاده از Connection Pooling کارایی برنامه را افزایش می‌دهد و تاثیر بسیار زیادی در بهینه‌سازی و کاهش منابع مورد استفاده برنامه و دیتابیس دارد. بنابراین توصیه می‌شود که حتماً در حالت Production، از این قابلیت، استفاده کنید.

برای فعال‌سازی این قابلیت در برنامه‌های Laravel کافیست که در فایل config/database.php قطعه کد زیر را در بخش option تنظیمات مربوط به دیتابیس‌تان بگذارید:

PDO::ATTR_PERSISTENT => true,

به عنوان مثال، پیکربندی مربوط به دیتابیس MySQL باید به شکل زیر باشد:

'mysql' => [
'driver' => 'mysql',
'url' => env('DB_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => env('DB_CHARSET', 'utf8mb4'),
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
    PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    PDO::ATTR_PERSISTENT => true,
]) : [],
],

متوجه شدم، برو گام بعدی!
;