برگزیده های پرشین تولز

قابلیت نصب Plugin روی برنامه های Php

PersianPC

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
9 فوریه 2005
نوشته‌ها
583
لایک‌ها
1
سن
34
محل سکونت
Tehran
سلام،

در این تاپیک می خوایم در مورد این بحث کنیم که چطوری می تونیم به برنامه های PHP مون، قابلیت نصب Plugin بدیم.

کلا می خوایم در مورد راهکار ها، روش ها و اینکه کدوم روش در چه حالاتی بهتر و راحت تر و توسعه پذیر تر جواب میده.

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

ممنون از همه دوستان ...
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
خوب من یکیشو میگم . نمیدونم این روش اسم داره یا نه . ما یه کلاس ایجاد میکنیم که یک تابع توش هست .


مثلا در یک فرم عضویت


بعد در جا های مخصوص کا این تابع رو صدا میزنیم . مثلا قبل از عضویت در سایت
PHP:
$plugin->hand("after_registration");

و موقعی که عضویت تموم شد

PHP:
$plugin->hand("registration_complete");

این تابع رو صدا میزنیم .

این تابع میاد توی دیتا بیس میگرده ببینه ایا برای registration_complete هیچ plugin در نظر گرفته شده یا نه . حالا این دیتا بیس میتونه بصورت فایل های درون پوشه خاصی باشه یا هرجور دیگه

خوب اگر مثبت بود و برای اون قسمت کدی در نظر گرفته شده بود اون کد اجرا میشه

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

از این روش در vBulletin استفاده میشه . و با

PHP:
$vBulletin->hook

قابل دسترسی هست
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
درسته دقیقا با همین روش ! یعنی مثلا هرجایی که میخوایم براش پلاگین در نظر بگیریم:
PHP:
load_plugins("newsadd");
 

PersianPC

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
9 فوریه 2005
نوشته‌ها
583
لایک‌ها
1
سن
34
محل سکونت
Tehran
ممنون shankimout جان.
یک همچین چیزی تو ذهنم بود ، اما به نظرم زیاد اصولی نمیاد این روش.
بطور مثال سیستم هایی مثل mambo و phpnuke رو در نظر بگیر.
ماژول ها بخش های جداگانه رو به سیستم اضافه میکنند ، برای مثال یک انجمن یا یک خبر نامه به سیستم اضافه میشه .فکر نمیکنم با این روش بشه ، اینکارا رو انجام داد ، درسته ؟

ممنون میشم اگه روشهای دیگش رو هم بگی ، که در نهایت به روش خوب برسیم.

بازم ممنون ...
 

PersianPC

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
9 فوریه 2005
نوشته‌ها
583
لایک‌ها
1
سن
34
محل سکونت
Tehran
به نقل از sama_sally :
درسته دقیقا با همین روش ! یعنی مثلا هرجایی که میخوایم براش پلاگین در نظر بگیریم:
PHP:
load_plugins("newsadd");
ببین سالار.
منظور من یه چیزی که اتوماتیک کارها رو انجام بده ، یعنی نیازی نباشه که بصورت دستی کد لود پلاگین رو بنوسیم.
مثلا وقتی این پلاگین از تو دیتابیس فعال شد ، کارهایی رو که باید انجام بده ، بدون نیاز اینکه ما دستی کدشو بنویسیم ، انجام بده !
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
خیلی عجیبه چیزایی مثل وردپرس یا مامبو این کارو میکنن ولی نمیدونم چطوری
 

shankimout

Registered User
تاریخ عضویت
17 می 2004
نوشته‌ها
1,524
لایک‌ها
3
محل سکونت
ساری . . . . . . . . . . . . . . Permanently Bann
خوب اینکه کاری نداره . من تمام سایت های حرفه ای رو با php مثل یه همچین چیزی در نظر میگیرم . یک پوشه در نظر میگیریم . مثلا modules و تمام فایل های درون اون رو لیست میکنیم . بعد همه رو میایم توی منو . . هرکدومشون کاری خاصی انجام میدن . مثلا فایل signup.php مساله عضویت رو به عهده میگیره و بطور مثال از ایندکس به این صورت یا صورت های دیگه صدا زده میشه index.php?module=signup .


برای اجرای ماژول ها کافیه که اول ببینید اونا وجود دارن یا نه ؟ بعد اونهارو include کننین .

اگر میخواهید کل section های عضویت رو درون یک فایل بزارید میتونید یه متغیر دیگه به نام do هم درش استفاده کنید . مثلا index.php?module=signup&do=showform

من یه چند تا سایت رو اینجوری طراحی کردم .
www.mpo-mz.ir
www.anjoman-mazandaran.com
www.bip-co.com
www.nsrmazandaran.org

تا ابروم نرفت اینو بگم که چون همه اینها template based انجام شدن 2 تا سایت اولو دیزاینشو یکی دیگه کرده و کار نوشتن ماژول رو من انجام دادم
 

PersianPC

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
9 فوریه 2005
نوشته‌ها
583
لایک‌ها
1
سن
34
محل سکونت
Tehran
ممنون !
متوجه شدم.
حالا یه سوال دیگه !
اگه بخوایم کاری کنیم که کد اصلی برنامه بتونه تاثیر پذیر بشه از این پلاگین ها باید چیکار کنیم ؟
برفرض یک پلاگینی برای وردپرس هست که یک سری فیلد دلخواه که توسط user تنظیم میشه رو به بخش ارسال مطلب وردپرس اضافه میکنه ، یا مثلا پلاگینی که بخش اپلود وردپرس رو تغیر میده ...
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
منظورت یه چیزی مثل قضیه extends (وراثت) تویه OOP هست؟
 

PersianPC

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
9 فوریه 2005
نوشته‌ها
583
لایک‌ها
1
سن
34
محل سکونت
Tehran
به نقل از sama_sally :
منظورت یه چیزی مثل قضیه extends (وراثت) تویه OOP هست؟

اره ! دقیقا همچین چیزی منظورمه !
 
بالا