آموزش کار با دیتابیس mongodb در php – بخش دوم

  • آپدیت شده در تاریخ

آموزش کار با دیتابیس mongodb در php

با بخش دوم از آموزش کار با دیتابیس mongodb در php در خدمت شما هستیم.

در بخش اول مقاله آموزش mongoDb با نحوه کار این دیتابیس, مفاهیم پایه و نحوه نصب آن روی پلتفرم های مختلف را دیدیم.

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

 

نصب درایور PHP برای دیتابیس MongoDB

سرور MongoDB از قبل با وب سرور پیش فرض شما کار میکند اما با PHP نه. بنابراین برای ارتباط به سرور MongoDB از طریق PHP , نیاز است که درایور آن را نصب کنیم که بصورت یک کتابخانه اکستنشن برای PHP است.

اگر از لینوکس استفاده می کنید دستور زیر را در ترمینال اجرا کنید

سپس خط extension=mongo.so را در فایل پیکربندی php.ini بصورت زیر اضافه کنید

سپس وب سرور را ریستارت و وریفای کنید:

نصب درایور بر روی ویندوز

  • فایل فشرده را دانلود کنید. https://github.com/mongodb/mongo-php-driver/releases
  • فایل php_mongo.dll را از فولدر استخراج شده در دایرکتری php نصب شده کپی کنید (در اینجا ازxampp استفاده می کنیم پس فولدر ما C:\xampp\php\ext است.)
  • فایل php.ini را از داخل فولدر php نصب شده باز کنید و این خط را اضافه کنید : extension=php_mongo.dll
  • فایل را ذخیره و XAMPP را ریستارت کنید
  • بعد از آن تابع phpinfo() را اجرا کنید و عبارت mongo را جستجو کنید تا از نصب شدن آن مطمین شوید.

آموزش کار با دیتابیس mongodb در php

کار با دیتابیس mongodb در php

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

اتصال به MongoDB از PHP بسیار شبیه اتصال به هر دیتابیس دیگری است. هاست پیش فرض localhost و پورت پیش فرض نیز ۲۷۰۱۷ است.

اتصال به هاست ریموت با اطلاعات ورود :

انتخاب یک دیتابیس

همین که کانکشن سرور دیتابیس برقرار شد, از آن برای دسترسی به یک دیتابیس استفاده می کنیم :

عملیات CRUD دیتابیس MongoDB در PHP

دیتابیس مانگو دستورات بسیار معناگرایانه و ساده ای برای خواندن و دستکاری داده های در اختیار ما قرار می دهد.

CURD مخفف عملیات Create (ساختن), read(خواندن), Update(بروزرسانی), Delete(حذف) است. این مفاهیم پایه تمام عملیات کار با دیتابیس می باشد.

ایجاد/انتخاب یک کالکشن (Collection)

انتخاب و ساخت یک کالکشن بسیار مشابه ساخت یک دیتابیس است. اگر کالکشن مورد نظر وجود نداشته باشد, آن را می سازد.

برای مثال به منظور ساخت کالکشن posts به اینصورت عمل می کنیم

ساخت یک سند (Document)

ایجاد یک سند در دیتابیس MongoDB از این ساده تر نمی تواند باشد.

کافیه یک آرایه را ساخته و به متد insert بر روی آبجکت کالکشن پاس بدید همین.

متد insert() داده ها را در collection ذخیره می کند. آرایه $post بصورت خوکار یک نام فیلد به نام _id اضافه می کند که یک آبجکت آی دی منحصر به فرد را در داکیومنت BSON قرار می دهد.

همچنین می توانید از متد save() نیز برای بروزرسانی یک رکورد از پیش وجود داشته و یا اگر وجود نداشت ساخت آن استفاده کنید.

خواندن یک سند (Document)

برای دریافت داده ها از یک کالکشن, از متد find() استفاده می کنیم که تمام داده ها در کالکشن را برگشت می دهد. findOne() نیز فقط یک داکیومنت را برگشت می دهد.

مثال زیر به شما نحوه نمایش رکورد ها توسط هر دو متد بالا را نشان می دهد.

بروزرسانی (Update) یک سند

بطور پیشفرض متد update() یک سند را بروزرسانی می کند. اگر چند آپشن ست شده باشد پس همه داکیومنت ها را در یک کوئری شاخص آپدیت می کند.

متد update() دو پارامتر را می پذیرد. اولی شاخص معرفی آبجکت برای آپدیت و دومی نیز آبجکتی که با رکوردهای مورد نظر تطابق دارد را مشخصئ می کند.

همچنین پارامتر اختیاری سومی نیز وجود دارد که می توانید یک آرایه از آپشن ها را پاس بدید.

مینی پروژه ساخت وبلاگ

ساختار پروژه ما بصورت زیر است:

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

فایل config.php

این فایل پیکربندی به شما نحوه اتصال به دیتابیس mongoDB در PHP را نشان می دهد.

برای قرار دادن رمزعبور و احراز هویت HTTP روی فولدر پنل مدیریت دو پارامتر UserAuth, PasswordAuth را تعریف کردیم.

فایل app.php

فولدر admin

این فولدر دارای فایل index.php شامل کدهای انحام عملیات CRUD است.

کد index.php بالا کامل نیست و کد کامل به همراه سورس کد نهایی از بخش باکس دانلود در دسترس است.

در بالا از تابع view در کلاس layout.php است که بطور خودکار فایل dashboard.view.php را لود می کند.

از پارامتر status به منظور انجام عملیات CRUD استفاده می شود. بطور مثال زمانی که مقدار status برابر create باشد:

تابع view(“admin/create”,$date) یک فرم HTML را که کاربر عنوان و محتوای پست جدید وبلاگ را می نویسد, نشان می دهد. یا اطلاعات سابمیت شده توسط کاربر را در دیتابیس mongoDB ذخیره می کند.

بطور پیش فرض اسکریپت فرم HTML زیر را نشان می دهد:

آموزش کار با دیتابیس mongodb در php

بخشی از فایل db.php را می بینید:

فایل های قالب را می توانید در فولدر view پیدا کنید. مثلا index.view.php . مثالی از فایل index.php :

Single.php : زمانی که صفحه یک پست را باز می کنید (کلیک روی گزینه Read more). منطق فایل single.php بصورت زیر است :

این فایل _id مقاله را از طریق پارامتر GET دریافت می کند. ما متد findOne() روی کالکشن articles اجرا می کنیم.

متد findOne() برای دریافت یک سند (document) تنها اجرا می کنیم. تابع getById() در فایل db.php است.

آموزش کار با دیتابیس mongodb در php

یک نام و ایمیل را در فیلد های ورودی زیر بخش کامنت ها وارد کنید, مقداری متن را در textarea بنویسید. سپس روی دکمه Save کلیک و نظر شما با لود صفحه ذخیره می شود.

فایل comment.php بصورت زیر است :

کامنت ها برای یک مقاله در یک آرایه فیلد در داکیومنت comments ذخیره می شود.

جمع بندی

در این مقاله آموزشی بطور عملی نحوه کار با دیتابیس mongodb در php را دیدم. همانطور که مشاهده کردید کار با این دیتابیس nosql بسیار ساده است و با نصب درایور آن در PHP به راحتی می توانید از آن در پروژه های تحت وب خود استفاده کنید.

توجه کنید که دیتابیس های NoSQL مثل MongoDB برای همه پروژه ها مناسب نیستند و بنابر ساختار داده های پروژه شما استفاده از آن یا استفاده از جایگزین دیگر مثلا دیتابیس های رابطه ای مانند MySQL می تواند مناسب باشد.

قبل از انتخاب دیتابیس mongoDB در پروژه های خود بهتر است که use case یا ساختار های مورد استفاده mongodb را به اینصورت جستجو کنید : use case for mongodb

یک نمونه از این use case را در سایت slideshare می توانید ببنید : https://www.slideshare.net/mongodb/common-use-cases-hannes

در کل برای پروژه های سنگین با پیش بینی وجود حجم بسیار زیادی از کاربران و اطلاعات دیگر می توانید از دیتابیس های NoSQL مانند MongoDB برای پروژه های تحت وب خود بهره ببرید.

بنابراین برای افزایش مقیاس پذیری پروژه خود و قابلیت توسعه پذیری نرم افزار تحت وب خود همیشه سعی کنید قبل از پیاده سازی آن استک (stack) نرم افزاری مناسب را انتخاب کنید که از این بین دیتابیس اهمیت بیشتری دارد.

برای اطلاعات بیشتر داکیومنت آنلاین mongoDB را مطالعه کنید

 

امیدوارم از بخش نهایی آموزش کار با دیتابیس mongodb در php نهایت استفاده را برده باشید.

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

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
برچسب ها : ,
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. مسعود ۹ مرداد ۱۴۰۱

    سلام سوالی داشتم اول اینکه ایا امکان استفاده از اطلس مانگو از ایران وجود داره یا نه؟
    سوال دوم فرض کنید جدول اخبار رو داریم و از یوزرهای مختلف ارسال میشه تو مای اس کیو ال فیلدی اضافه میکنیم به نام مثال یوزر ایدی که مشخص بشه کی ارسال کرده…
    حالا توی مانگو من اگه بیام بگه کالکشنی که ایجاد میکنی به نام news بیام ثبت کنم کالکشن نیوز و اخرش ایدی یوزر رو بدم و برای هر یوزر کالکشن جدید ساخته بشه.. اصلا این منطقی و کار درستی هست یا همون روش قبلی همه در یک کالکشن و فقط یوزر ایدی اضافه بشه!؟ برای این پرسیدم که موقع فراخانی هم کالکشن هر یوزر رو بصورت جدا داشته باشم. فقط از لحاظ منطقی بودن کارم میپرسم!؟

    پاسخ
دوره های آموزشی