۱۴۰۰/۰۶/۳۰

پایگاه داده ها در سیمفونی Doctrine ORM

پایگاه داده ها در سیمفونی ۱۳۹۸/۰۴/۲۶

یک نیاز مهم برای هر اپلیکیشن کار با دیتابیس است.فریم ورک سیمفونی برای انجام عملیات مختلف  بر روی پایگاه داده از کتابخانه قدرتمند doctorin استفاده میکند .دکترین کاملا از سیموفنی جداست .با استفاده از دکترین می توانید اشیاء را در یک پایگاه داده را بطه مانند:MySQL یا PostgreSQL یا Microsoft SQL , مرتبط  کنید.در این مطلب آموزشی به Doctrine ORM میپردازیم.

نکته: برای کار با پایگاه داده در سیموفنی 4 به صفحه پایگاه داده ها در سیموفنی 4 مراجعه کنید.

استفاده از doctrine orm کاملا اختیاری است به این معنی که شما می توانیم از کتابخانه های دیگری مانند mongo db و ... استفاده کنید.

قبل از انجام هر کاری ابتدا باید در فایل app/config/parameters.yml پیکربندی های لازم را برای اتصال به دیتابیس انجام دهید .

# app/config/parameters.yml
parameters:  database_host: localhost
 database_name: test_database
database_user: root
 database_password: password
# ...

مقادیر تنطیم شده در فایل parameters.yml فقط یک قرارداد است برای مدیریت بهتر مقادیری که برای تنظیمات قسمت های مختلف نرم ازفزار استفاده میشود.بعد از آن برای ست کردن این مقادیر فایل config.yml را به شکل زیر پیکربندی کنید.

# app/config/config.yml
doctrine:
    dbal:
        driver:   pdo_mysql
        host:     '%database_host%'
        dbname:   '%database_name%'
        user:     '%database_user%'
        password: '%database_password%'

میتوانید این مقادیر را بصورت مستقیم در فایل config.yml تنظیم کنید ولی این کار باعث میشود مدیریت اطلاعات برای تنظیم قسمت های مختلف راحت تر بشود و حتی در بعضی موارد میتوانید با قرار دادن فایل parameter.yml در خارج از سرویس میزیان امنیت رمز های عبور را بیشتر از قبل تضمین کنید.

اگر نیاز داشتید پایگاه داده ای SQLite را بعنوان پایگاه داده ها انتخاب کنید می توانید فایل config را بصورت زیر تنظیم کنید.

# app/config/config.yml
doctrine:
    dbal:
        driver: pdo_sqlite
        path: '%kernel.project_dir%/app/sqlite.db'
        charset: UTF8

بعد از اجرای این تنطیمات با استفاده از دستور زیر دیتابیس شما در mysql ساخته میشود.

php bin/console doctrine:database:create

نکته:نام دیتابیس شما نامی است که در database_name مشخص کرده اید.در اینجا test_database

بعد از اجرا دستور بالا شما با اجرا دستور زیر کلاس مرتبط با جدول خود را ایجاد میکنید.

php bin/console doctrine:generate:entity

 .بعد از اجرا دستور بالا باید تنطیماتی را که در کامنت لاین از شما درخواست میشود مانند شکل زیر مشخص کنید

سیمفونی برای تکمیل هر مرحله با نمایش sample ها نحوه تکمیل مراحل مختلف را به شما نمایش میدهد.بعنوان مثل در ابتدا با مثال AcmeBundle:Post شما را راهنمایی میکند که چگونه یک نام برای entity  برای کلاس خود انتخاب کنید .همانطور که مشخص است AcmeBundle نام Bundle است که شما قصد دارید در انجا entity مورد نظر خود را بسازید. و entity نام انتیتی که همان نام جدول شما خواهد بود است ..

بنا به تجربه بهتر این است تا جای ممکن کلیه جداول در یک bundle ساخته شود.

آموزش سیمفونی فریم ورک

 در ابتدا حالت پیش فرض یعنی annotation را انتخاب کنید .که در مورد تفاوت های حالت های انتخابی مختلف در آموزش بعدی توضیح داده می شود.

بعد از آن انتخاب annotation و فشردن کلید enter سیمفونی از شما درخواست میکند نام فیلدهای موردنظر  را برای جدول test انتخاب کنید.به این نکته دقت کنید که فیلد id بطور خورکار برای جدول شما در نظر گرفته میشود.و شما نیاز به تعریف این فیلد ندارید

مانند شکل زیر یک نام برای فیلد خود انتخاب کنید و بعد از enter مشخصات و نوع فیلد را مشخص کنید.

آموزش سیمفونی ..دیتابیس

بعد از اتمام تعریف فیلد های مورد نیاز یک پوشه با نام Entity در bundle که مشخص شده ایجاد میشود.در این پوشه کلاس ها جدولی که ساخته این ایجاد شده است.

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

 php bin/console doctrine:schema:update --force

رای :

Doctrine ORM-پایگاه داده ها-سیمفونی-فریم ورک

ارسال نظر
Copyright © All right reserved.