اگر قصد دارید یک پروژه واقعی و قابل توسعه با PHP ایجاد کنید! ساخت یک وبلاگ بهترین نقطه شروع است! مخصوصاً اگر بخواهید با اصول برنامهنویسی شیگرا (OOP) آشنا شوید . «ایجاد یک وبلاگ شیگرا با استفاده از PHP» نه تنها باعث میشود ساختار برنامهتان حرفهایتر باشد . بلکه نگهداری و توسعه آن هم بسیار سادهتر میشود .
در این مقاله به صورت ساده و کاملاً کاربردی توضیح میدهیم که چطور میتوانید یک وبلاگ شیگرا طراحی کنید . چه ساختاری برای دیتابیس مناسب است و در نهایت چطور خروجی منظم و قابل توسعه بسازید .
چرا وبلاگ شی گرا؟!! مزایای استفاده از OOP
بسیاری از برنامهنویسان تازهکار کارشان را با پروژههای کاملاً رویهای (Procedural) آغاز میکنند. این مدل برای پروژههای بسیار کوچک مناسب است. اما به محض اینکه نیازها زیاد شود کد نامرتب و مدیریت آن سخت خواهد شد. با استفاده از OOP:
- کدها قابلگسترش میشوند
- بخشهای مختلف پروژه بهصورت مستقل عمل میکنند
- نگهداری و رفع باگ سادهتر میشود
- ارتباط با دیتابیس ساختارمندتر انجام میشود
در ایجاد یک وبلاگ شیگرا با استفاده از PHP، ما مدل پستها، نویسندهها و تگها را در قالب «کلاس» تعریف میکنیم تا هر بخش رفتار و دادههای مخصوص خودش را داشته باشد.
مرحله اول: طراحی دیتابیس به روش استاندارد
قبل از نوشتن اولین خط کد، باید دیتابیس را بهدرستی طراحی کنیم. وبلاگ یک سیستم محتوایی است و اگر ساختار پایگاه داده اصولی باشد! در ادامه توسعه پروژه به مشکل نمیخورید.
جداولی که نیاز دارید!
1- جدول پستها (blog_posts)
برای ذخیره عنوان متن و نویسنده
2- جدول نویسندگان (people)
برای اطلاعات نویسنده مثل نام ایمیل یا سایت شخصی
3- جدول تگها (tags)
برای مدیریت موضوعات یا برچسبهای هر پست!!!
4- جدول میانی (blog_post_tags)
برای ایجاد رابطه چند به چند بین پستها و تگها .
این ساختار دقیقاً همان نوع مدلی است که بعدها در CMSهای حرفهای مثل وردپرس نیز استفاده میشود . با این روش دادهها تکراری نمیشوند و تغییرات بسیار سادهتر مدیریت میگردد.
مرحله دوم: ساخت کلاسها (Models) برای وبلاگ
در ایجاد یک وبلاگ شیگرا با استفاده از PHP هر موجودیت دیتابیس یک کلاس مخصوص به خود دارد.
برای مثال:
- کلاس BlogPost
- شناسه
- عنوان
- متن
- نویسنده
- تگها
- تاریخ انتشار
در کنار آن متدهایی تعریف میشود که رفتار این شئ را مشخص میکنند؛ مثل:
- تبدیل تاریخ به فرمت قابلخواندن
- واکشی تگهای مرتبط
- ویرایش / حذف پست
همین ساختار است که پروژه را منظم و قابل مدیریت میکند.
مرحله سوم: اتصال به دیتابیس با روش امن (PDO)
نسخههای قدیمی PHP از توابع mysql_query استفاده میکردند که امروز منقضی شده و امنیت بسیار پایینی دارد. پس برای ساخت یک وبلاگ شیگرا باید از PDO استفاده کنید:
- امکان اجرای query امن
- جلوگیری از SQL Injection
- پشتیبانی از Prepared Statements
در این مرحله یک فایل مجزا مانند Database.php ایجاد میشود و تمام ارتباط با MySQL در همین بخش مدیریت خواهد شد .
مرحله چهارم: مدیریت پستها با یک Repository
این بخش در بسیاری از آموزشهای جدید دنیا توصیه شده است . در این روش یک کلاس با عنوان PostRepository ایجاد میشود که وظایف زیر را بر عهده دارد:
- دریافت لیست پستها
- واکشی پست بر اساس شناسه
- ذخیره پست جدید
- ویرایش پست
- حذف پست
به این ترتیب کلاس اصلی BlogPost فقط روی منطق شئ تمرکز دارد و عملیات دیتابیس در بخش جداگانه انجام میشود.
مرحله پنجم: نمایش اطلاعات در صفحه اصلی
پس از دریافت اطلاعات، تنها کاری که باید انجام دهید این است که پستها را از داخل اشیا بخوانید:
foreach($posts as $post){
echo "<h2>{$post->title}</h2>";
echo "<p>{$post->post}</p>";
echo "<span>نویسنده: {$post->author} | تاریخ: {$post->datePosted}</span>";
}
نتیجه یک خروجی تمیز و ساختاریافته است که در آینده بهراحتی میتوانید:
- صفحه جزئیات پست
- صفحه تگها
- بخش نویسندگان
- پنل مدیریت
- را نیز به آن اضافه کنید.
مرحله ششم: افزودن امکانات پیشرفتهتر
بعد از ایجاد یک وبلاگ شیگرا با استفاده از PHP، پروژه آماده توسعه است. برخی امکانات تکمیلی:
- سیستم ورود نویسندهها
- ایجاد پنل مدیریت (Admin Panel)
- امکان جستجو میان پستها
- صفحه تگها با فیلتر محتوا
- کامنتگذاری کاربران
- آدرسهای سئو فرندلی (/blog/my-first-post)
- دستهبندی موضوعات
در اینجا قدرت واقعی OOP نمایان میشود؛ هر قابلیت جدید فقط یک کلاس یا چند متد به پروژه اضافه میکند، بدون اینکه ساختار قبلی را به هم بریزد.
نتیجه گیری
ایجاد یک وبلاگ شیگرا با استفاده از PHP یکی از بهترین تمرینها برای یادگیری اصول حرفهای برنامهنویسی است . با درک صحیح از کلاسها، متدها، طراحی دیتابیس و استفاده از PDO میتوانید یک پروژه واقعی . تمیز و قابل گسترش بسازید که تفاوتش با ساختار رویهای بهوضوح قابل مشاهده است. اگر به دنبال این هستید که قدمبهقدم وارد دنیای توسعه وب حرفهای شوید، این مدل پروژه یک نقطه شروع فوقالعاده است.