PDA

View Full Version : سوال: ایجاد گروه کاربری vip



sajadpm
چهارشنبه 16 مرداد 1392, 14:55 عصر
با سلام و خسته نباشید خدمت دوستان

می خواستم بپرسم که در اسکریپتی گروه کاربری متفاوتی وجود دارد حالا یکی از این گروه کاربری ها vip است که با پرداخت هزینه برای مدت محدودی مثلا 1 ماه عضویت آن ادامه دارد حالا مشکل من اینجاست که با تغییر گروه عضویت چجوری میشه کاربر فقط 1 ماه در اون گروه کاربری باشد یعنی مثلا 92/14/5 عضو گروه ویژه شده و بعد از 1 ماه دوباره به عضو معمولی به صورت خودکار برگرده . مثل همه ی گروه کاربری ویژه در اسکریپت ها . منتظر راهنمایی دوستان هستم . تشکر

abolfazl-z
چهارشنبه 16 مرداد 1392, 14:59 عصر
خوب خودتون همه مطلب رو گفتید دیگه هیچی نمیمونه و از دید من جای سوالی نیست . مشکلی در این زمینه دارید؟ (دید من از لحاظ تئوری)

sajadpm
چهارشنبه 16 مرداد 1392, 15:26 عصر
تشکر از پاسختون . خیر منظور من این نبود منظورم این بود که چجوری میشه بررسی کرد تاریخ عضویت در گروه vip رو مثلا سر یک تاریخ معین به گروه کاربری قبلی برگرده ! امیدوارم منظورم رو واضح رسونده باشم

abolfazl-z
چهارشنبه 16 مرداد 1392, 15:40 عصر
خوب نگاه کن شما ابتدا یک ستون به ستون های کاربران اضافه می کنید مثلا Expiration_vip
بعد تاریخ موردنظر را وارد کن(آینده) بعد حتما هم یک ستونی به نام type_user و .. دارید که نوع کاربر را مشخص می کند.

مثال :
خوب حالا شما فرض کنید یک کاربر عادی دارید به نام ali
که مشخصات آن به شرح زیر است :(مقدار - ستون)
username : ali
password: ****
type_user : Normal
Expiration_vip : none
خوب حالا این کاربر عادی میاد و پول رو پرداخت می کنه و میشه بصورت زیر :

username : ali
password: ****
type_user : vip
Expiration_vip : 2013-9-7
خوب حالا این کاربر ما شده vip و هر زمان که کاربر عملی انجام داد قبل اش چک کنه که تاریخ فعلی به تاریخ 2013-9-7 نرسیده و این به این معنی هست که هنوز میتونه دانلود کنه و هنوز یک کاربر وی آی پی هست.
و وقتی که به ان تاریخ رسید شما باید مقدار فیلد ها را بصورت زیر تغییر دهید :
username : ali
password: ****
type_user : Normal
Expiration_vip : none

یعنی همون حالت قبلی

در ضمن شما میتوانید در وسط دانلود هم چک کنید ولی بهتر است قبل از دانلود چک بشه.
و همچنین شما می توانید زمان هم تعریف کنید.

parsboy
چهارشنبه 16 مرداد 1392, 15:41 عصر
تشکر از پاسختون . خیر منظور من این نبود منظورم این بود که چجوری میشه بررسی کرد تاریخ عضویت در گروه vip رو مثلا سر یک تاریخ معین به گروه کاربری قبلی برگرده ! امیدوارم منظورم رو واضح رسونده باشم
شما میتونید زمان ثبت نام تاریخ عضویت رو ثبت کنید و یک تاریخ معین درنظربگیرید و با یه شرط زمانی که کاربرمیخواد Login کنه بررسی کنید که آیا تاریخ ثبت نام به اون تاریخ معینی که شما میخوای رسیده یا نه؟ اگر آره که با یه Update میتونید کاربر رو انتقال بدید به کاربرقبلی که بوده امیدوارم متوجه شده باشید.

sajadpm
چهارشنبه 16 مرداد 1392, 15:49 عصر
تشکر از دوستان , راه حل های ارائه شده خیلی خوبه ! ولی آیا روش دیگری نیز وجود داره به نظر شما اینجوری کمی روی سرور فشار نمیاره چون تعداد دانلود که بالا برود تعداد query ها زیاد شده به سرور ! مثلا اینکه هر 1 ساعت یک بار جدول ها بررسی بشود ! ؟ مثل ویبولتین که یک برنامه زمانی دارد ؟ که کاربر مثلا اگر 20 پستش به 30 پست رسید به گروه کاربری جدید منتقل میشود ؟ تشکر . منتظر پاسختون هستم

parsboy
چهارشنبه 16 مرداد 1392, 15:53 عصر
تشکر از دوستان , راه حل های ارائه شده خیلی خوبه ! ولی آیا روش دیگری نیز وجود داره به نظر شما اینجوری کمی روی سرور فشار نمیاره چون تعداد دانلود که بالا برود تعداد query ها زیاد شده به سرور ! مثلا اینکه هر 1 ساعت یک بار جدول ها بررسی بشود ! ؟ مثل ویبولتین که یک برنامه زمانی دارد ؟ که کاربر مثلا اگر 20 پستش به 30 پست رسید به گروه کاربری جدید منتقل میشود ؟ تشکر . منتظر پاسختون هستم
بله میشه همینطورکه خودتون گفتید بررسی کنید که اگر تعداد پست هاشون به 20 تارسید به گروه کاربری جدید انتقال داده شوند
یا اینکه براشون امتیازبزاری مثلا با ایجاد هر50 تاپست امتیازشون تغییرکنه و به گروه کاربری جدید انتقال داده شوند.

sajadpm
چهارشنبه 16 مرداد 1392, 15:56 عصر
بله میشه همینطورکه خودتون گفتید بررسی کنید که اگر تعداد پست هاشون به 20 تارسید به گروه کاربری جدید انتقال داده شوند
یا اینکه براشون امتیازبزاری مثلا با ایجاد هر50 تاپست امتیازشون تغییرکنه و به گروه کاربری جدید انتقال داده شوند.
ببخشید ولی خب به چه صورت به وسیله php میشه انجام داد ؟ آیا این کار بهتر است یا روش اول ؟

parsboy
چهارشنبه 16 مرداد 1392, 16:20 عصر
ببخشید ولی خب به چه صورت به وسیله php میشه انجام داد ؟ آیا این کار بهتر است یا روش اول ؟
بستگی به شما داره اما به نظر من روش دوم بهتر باید باشه الان یه مثال میزنم مثلا همین forum رونگاه کنید به تعداد هر50 تاپست یه ستاره میده اگراشتباه نکنم و درجه هایی مانند: کاربرتاره وارد_ کاربر دائمی و... داره

amirrezaq
چهارشنبه 16 مرداد 1392, 16:47 عصر
خوب یک روش دیگه هم هست
زمانی که دارید برای کاربران vip کوکی ست میکنید پارامتر سومش رو که زمان هست یک ماه بزارید

amin7x
چهارشنبه 16 مرداد 1392, 17:16 عصر
با اجازه دوست عزیز که وسط تاپیکش پست میزنم

خب ما همه این کار هارو انجام دادیم چه طوری هر روز شرط رو اجرا کنیم تا ببینیم برقراره یا نه؟ (بدون Caron Job)

silencer
چهارشنبه 16 مرداد 1392, 18:12 عصر
شما میتونید توی صفحه اصلی یا تمام صفحاتتون یک فایل رو ضمیمه کنید،که اونجا 3متغیر باید تعریف کنید. یکی آخرین زمان بروزرسانی ،یکی مدت بروزرسانی مثلا هر 5 دقیقه یا 20 یا هر 10 ساعت بستگی به خودتون داره (حداقل زمان)و یکی هم زمان کنونی.

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

sajadpm
چهارشنبه 16 مرداد 1392, 20:12 عصر
با تشکر از پاسخ تمامی دوستان

زمانی که دارید برای کاربران vip کوکی ست میکنید پارامتر سومش رو که زمان هست یک ماه بزارید

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


شما میتونید توی صفحه اصلی یا تمام صفحاتتون یک فایل رو ضمیمه کنید،که اونجا 3متغیر باید تعریف کنید. یکی آخرین زمان بروزرسانی ،یکی مدت بروزرسانی مثلا هر 5 دقیقه یا 20 یا هر 10 ساعت بستگی به خودتون داره (حداقل زمان)و یکی هم زمان کنونی.
وقتی یکی از صفحاتتون لود بشه چک می کنید اگر زمان کنونی کمتر از مجموع آخرین زمان بروز رسانی و مدت بروز رسانی باشه هیچ اتفاقی نیوفته ولی اگر بزرگتر بود مییاید کد های مربوط به بروزرسانی پایگاه دادتون رو اجرا میکنید. و زمان کنونی رو میریزید توی متغیرآخرین زمان بروزرسانی

من از این گروه کاربری ویژه در نرم افزار استفاده می کنم که از روش شما نمی شود استفاده کرد ! الان بیشتر اسکریپت ها که قسمت کاربری ویژه رو دارا می باشند چگونه عمل می کند ؟ کسی تابحال کار نکرده.

engmmrj
پنج شنبه 17 مرداد 1392, 02:22 صبح
با تشکر از پاسخ تمامی دوستان


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



من از این گروه کاربری ویژه در نرم افزار استفاده می کنم که از روش شما نمی شود استفاده کرد ! الان بیشتر اسکریپت ها که قسمت کاربری ویژه رو دارا می باشند چگونه عمل می کند ؟ کسی تابحال کار نکرده.
پاسختون رو parsboy (http://barnamenevis.org/member.php?275637-parsboy) دادن در پست شماره 5 ! و اشاره فرمودند که امیدوارم متوجه شده باشید ، کافیه کمی فکر کنید تا متوجه شوید .

sajadpm
پنج شنبه 17 مرداد 1392, 02:44 صبح
پاسختون رو parsboy (http://barnamenevis.org/member.php?275637-parsboy) دادن در پست شماره 5 ! و اشاره فرمودند که امیدوارم متوجه شده باشید ، کافیه کمی فکر کنید تا متوجه شوید .
بله متوجه شدم این پاسخ رو ولی سوال بعدی من که در مورده این سوال بود پاسخ داده نشد :

به نظر شما اینجوری کمی روی سرور فشار نمیاره چون تعداد دانلود که بالا برود تعداد query ها زیاد شده به سرور

s_salavati2002
پنج شنبه 17 مرداد 1392, 04:20 صبح
بله متوجه شدم این پاسخ رو ولی سوال بعدی من که در مورده این سوال بود پاسخ داده نشد :
نه زیاد، همزمان با لاگین داره بررسی میشه
هزینه زمانی fetch دیتابیس مهمتر از شرطه، تعداد کوئری هم فرقی نمی کنه
یه فیلد اضافه بار زیادی نداره رو سرور

engmmrj
پنج شنبه 17 مرداد 1392, 11:29 صبح
table تون هم نرمال نیست .
موفق باشید.

sajadpm
پنج شنبه 17 مرداد 1392, 12:55 عصر
table تون هم نرمال نیست .
موفق باشید.

ببخشید . میشه بیشتر توضیح بدهید از چه نظر نرمال نیست یعنی این که تاریخ اتمام گروه کاربری رو با table یوزر همراه است مشکل ایجاد می کند ؟

shahriyar3
پنج شنبه 17 مرداد 1392, 23:09 عصر
این بحث مورد علاقه منه طراحی دیتا بیس . این روش هائی که گفتند دوستان برای سیستم های بسیار کوچیک تعریف میشه
ما میخوایم پروژه تعریف کنیم میشینیم چند روز سر بحث طراحی جدول ها و روابطشون با هم دیگه بحث میکنیم.بحث پیچیده ای هست.

راه حل من اینه بسته به نیاز شما میتونه کمی تغییر کنه و بهینه تر بشه.
تیبل GROUP
شامل گروه های که نیاز دارید مثل کاربران ویژه - کاربران عادی - مدیر عمومی - مدیر بخش - و ....
تیبل ROLE
شامل قوانین کلی دسترسی های بخش های مختلف سایت مثل دسترسی به بخش دانلود - دسترسی به بخش ادمین - دسترسی ویرایش ادمین - دسترسی حذف ادمین و .....
تیبل GROUP_PERMISSION
ترکیب گروه ها و مجوز دسترسی هاشون
مثلا گروه ادمین با آیدی #1 مجوز دسترسی 1 داره - آیدی #2 مجوز 1و3 داره و .....
تیبل USER_GROUP
شامل آیدی یوزر نیم ها و آیدی GROUP_PERMISSION هست که نشون میده هر کاربر در کدام گروه کاربری و با چه مجوز های فعالیتی هست.
و تیبل users
که شامل مشخصات کاربر هست تاریخ عضویت و نام کاربری و پسورد و ....

این ساختار احتیاج به تعریف کلید خارجی هم بین جداول داره
تیبل GROUP با تیبل های GROUP_PERMISSION و USER_GROUP کلید خارجی داره
تیبل ROLE با تیبل GROUP_PERMISSION کلید خارجی داره
و تیبل USERS با تیبل USER_GROUP کلید خارجی داره

امیدوارم به دردتون بخوره :چشمک:

s_salavati2002
جمعه 18 مرداد 1392, 19:47 عصر
این بحث مورد علاقه منه طراحی دیتا بیس . این روش هائی که گفتند دوستان برای سیستم های بسیار کوچیک تعریف میشه
ما میخوایم پروژه تعریف کنیم میشینیم چند روز سر بحث طراحی جدول ها و روابطشون با هم دیگه بحث میکنیم.بحث پیچیده ای هست.

راه حل من اینه بسته به نیاز شما میتونه کمی تغییر کنه و بهینه تر بشه.
تیبل GROUP
شامل گروه های که نیاز دارید مثل کاربران ویژه - کاربران عادی - مدیر عمومی - مدیر بخش - و ....
تیبل ROLE
شامل قوانین کلی دسترسی های بخش های مختلف سایت مثل دسترسی به بخش دانلود - دسترسی به بخش ادمین - دسترسی ویرایش ادمین - دسترسی حذف ادمین و .....
تیبل GROUP_PERMISSION
ترکیب گروه ها و مجوز دسترسی هاشون
مثلا گروه ادمین با آیدی #1 مجوز دسترسی 1 داره - آیدی #2 مجوز 1و3 داره و .....
تیبل USER_GROUP
شامل آیدی یوزر نیم ها و آیدی GROUP_PERMISSION هست که نشون میده هر کاربر در کدام گروه کاربری و با چه مجوز های فعالیتی هست.
و تیبل users
که شامل مشخصات کاربر هست تاریخ عضویت و نام کاربری و پسورد و ....

این ساختار احتیاج به تعریف کلید خارجی هم بین جداول داره
تیبل GROUP با تیبل های GROUP_PERMISSION و USER_GROUP کلید خارجی داره
تیبل ROLE با تیبل GROUP_PERMISSION کلید خارجی داره
و تیبل USERS با تیبل USER_GROUP کلید خارجی داره

امیدوارم به دردتون بخوره :چشمک:
مرسی دوست عزیز
کاملا با نظرت موافقم که دیتابیس بحث شیرینیه
خیلی خوبه که یک تاپیک بزنیم و اینارو اونجا هم بگیم با پیاده سازیش در php که هممون بتونیم از تجربیات همدیگه استفاده کنیم
مثلا rule ها permission ها و وراثت های خوشبینانه و بدبینانه، درخت permission ها و ...
اما به نظرم برای این دوستمون این همه پیچیدگی زیاده، که نهایت دو گروه کاربری داره که دسترسی اونا در چند مورد با هم فرق داره

morrning
شنبه 19 مرداد 1392, 00:03 صبح
پرمیشن رو روی جدول کاربرا لحاظ کنید که فقط مواقعی که کاربر قصد استفاده از امتیازات vip رو داره پرمیشن و تاریخ انتقضای vip رو چک کنید. توی تمام صفحات سایت چک کردن vip بودن کار بیهوده ایه. مثلا توس صفحه هوم چه کاربر ویژه باشه یا عادی یا مهمان هیچ تفاوتی نمیکنه

sajadpm
شنبه 19 مرداد 1392, 01:10 صبح
با تشکر و قدردانی فراوان از تمامی دوستانی که کمک کردند و من رو راهنمایی کردند .

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

shahriyar3
شنبه 19 مرداد 1392, 12:22 عصر
مرسی دوست عزیز
کاملا با نظرت موافقم که دیتابیس بحث شیرینیه
خیلی خوبه که یک تاپیک بزنیم و اینارو اونجا هم بگیم با پیاده سازیش در php که هممون بتونیم از تجربیات همدیگه استفاده کنیم
مثلا rule ها permission ها و وراثت های خوشبینانه و بدبینانه، درخت permission ها و ...
اما به نظرم برای این دوستمون این همه پیچیدگی زیاده، که نهایت دو گروه کاربری داره که دسترسی اونا در چند مورد با هم فرق داره
در مورد بحث ساختار دیتابیس اصلا بحث برنامه نویسی php منظورم نبود که قاطیش کنیم. این چیزی که من میگم ربطی به ارث بری نداره و حالت خوشبینانه و بد بینانه رو درنظر نمیگیریم این کار و باید شما زمان برنامه نویسی انجام بدید.
بحث اینه که کسی که میخواد یه سیستمی رو بنویسه اگر میخواد کار حرفه ای انجام بده و آماتور نباشه باید اول بشینه روی کاغذ ساختار مورد نظرش و بکشه و بین جدول هائی که کشیده خط بکشه و ربطشون بده به هم که بفهمه این سیستم چقدر قابلیت توسعه داره و ...
روی کاغذ هم که نکشه برنامه هائی هست که میشه باهاش واسه mysql دیاگرام کشید و کلید های خارجی براش تعریف کرد و با هم ربطشون داد.
الان به هر آماتوری بگین یه فروشگاه بنویسه خوب همون اول یه تیبل یوزر درست میکنه بعدش هم یه تیبل product درست میکنه این میشه فروشگاهش بعدا که بهش میگن حالا این امکان و هم به سیستم اضافه کن یه فیلد به ته تیبلش اضافه میکنه . همینجوری فروشگاهش با یه فیلد گسترش پیدا میکنه ولی بعد از یه مدتی به بن بست میرسه !!
خیلی برای من پیش اومده که سیستمی رو طراحی میکنم بعد از یه مد ت میان میگن مدیریت فلان قسمت رو هم به ادمین اضافه کنید. اون موقع نیاز نداشتن ولی الان نیاز دارن ولی من از اولش پیش بینی توسعه سیستم و میکنم که به مشکل نخورم .
حالا قضیه این دوست عزیز هم همینه الان فقط 2 گروه کاربری داره بعدا شاید زیاد شه خواسته هاش اون موقع باید چیکار کنه؟
اصولی کار کنید و طراحی کنید هیچ موقع ضرر نمیکنید

sajadpm
شنبه 19 مرداد 1392, 14:20 عصر
بله حرف شما بسیار درست است فقط یک سوال داشتم من قبلا دیتابیس رو طراحی و سیستم محتوا رو حداقل 60% رو طراحی کردم الان باید فکر کنم بیشتر ساختار رو تغییر بدهم به نظر شما این کار رو انجام بدهم ؟ الان

shahriyar3
شنبه 19 مرداد 1392, 14:32 عصر
من که هیچی از پروژه شما نمیدونم. نیاز هاتونو نمیدونم محدودیت زمانی که دارید نممیدونم از اطلاعات فنی که دارید هم اطلاعی ندارم
ولی من توصیه ام اینه که کار اصولی بکنید برای آینده بهتره

s_salavati2002
یک شنبه 20 مرداد 1392, 11:04 صبح
در مورد بحث ساختار دیتابیس اصلا بحث برنامه نویسی php منظورم نبود که قاطیش کنیم. این چیزی که من میگم ربطی به ارث بری نداره و حالت خوشبینانه و بد بینانه رو درنظر نمیگیریم این کار و باید شما زمان برنامه نویسی انجام بدید.
بحث اینه که کسی که میخواد یه سیستمی رو بنویسه اگر میخواد کار حرفه ای انجام بده و آماتور نباشه باید اول بشینه روی کاغذ ساختار مورد نظرش و بکشه و بین جدول هائی که کشیده خط بکشه و ربطشون بده به هم که بفهمه این سیستم چقدر قابلیت توسعه داره و ...
روی کاغذ هم که نکشه برنامه هائی هست که میشه باهاش واسه mysql دیاگرام کشید و کلید های خارجی براش تعریف کرد و با هم ربطشون داد.
الان به هر آماتوری بگین یه فروشگاه بنویسه خوب همون اول یه تیبل یوزر درست میکنه بعدش هم یه تیبل product درست میکنه این میشه فروشگاهش بعدا که بهش میگن حالا این امکان و هم به سیستم اضافه کن یه فیلد به ته تیبلش اضافه میکنه . همینجوری فروشگاهش با یه فیلد گسترش پیدا میکنه ولی بعد از یه مدتی به بن بست میرسه !!
خیلی برای من پیش اومده که سیستمی رو طراحی میکنم بعد از یه مد ت میان میگن مدیریت فلان قسمت رو هم به ادمین اضافه کنید. اون موقع نیاز نداشتن ولی الان نیاز دارن ولی من از اولش پیش بینی توسعه سیستم و میکنم که به مشکل نخورم .
حالا قضیه این دوست عزیز هم همینه الان فقط 2 گروه کاربری داره بعدا شاید زیاد شه خواسته هاش اون موقع باید چیکار کنه؟
اصولی کار کنید و طراحی کنید هیچ موقع ضرر نمیکنید
بخشی از حرفتو قبول دارم،
ولی همیشه حرفه ای بودن دلیل بر پیچیدگی نیست
بستگی به دامنه پروژه ایشان داره، اگر دامنه پروژش همینه بهترین راه ساده ترین راهه که کمتر به دیتابیس فشار بیاره
اگر دو گروه تفاوت زیادی ندارن، بایک صفت میشه براحتی همه کار کرد بدونه اینکه کوچکترین فشار اضافه به سرور داده بشه
اصطلاح اصولی تعریف معینی نداره، خودت بهتر میدونی که ساختار پیشنهادیت همه چیز رو شامل نمیشه ، برای مثال اگر در پروژه ای بخوان عملیات بر روی یک محصول را به روی یک شخص خاص ببندن که خود عملیات شامل تعریف حذف و اضافه میشه ساختار پیشنهادی شما براحتی نمیتونه این کار رو انجام بده ولی دلیل بر غیر اصولی بودنش نیست
شما تجربه هاتو میگی منم تجربه هامو در نهایت این دوستمون هست که انتخاب کنه کدوم گزینه ها بدردشون می خوره
از نظر من دامنه پروژه خیلی مهمه و هر ایده ای که دامنه رو گسترش بده هرچقدرم خوب باشه ریسک پروژه رو بسیار افزایش میده که خیلی قابل دفاع نیست
یک پروژه که نهایت کارش 30-40 نفرساعته لزومی نداره ساختارش enterprise باشه ، اگر کارفرمات تغییر عقیده میده باید نحوه تعامل رو تغییر بدی چون دامنه رو یکبار باهاش بستی و تموم شده
اگر همه پروژه ها شبیه هم بود این همه ساختار و متدها برای مدیریت دسترسی ها تعریف نمی شد.

پیشنهادم به دوست عزیزمون اینه که یک صفت به جدول اعضا اضافه کنه و اونو در اسکریپت ها چک کنه
و اگر بخواید ساختار رو عوض کنید باید یک راهکار پیاده سازی مناسب هم در php پیاده کنید که خودش ریسک های خاص خودش رو داره و شاید هرگز نتونید از همه پتانسیلش استفاده کنید.