PDA

View Full Version : گفتگو: چطور سیستم مدیریت محتوا قابل توسعه طراحی کنم



Mohammad-tashi
دوشنبه 04 آبان 1394, 15:44 عصر
باسلام
من میخام یک سیستم مدیریت محتوا طراحی کنم که بتونم تموم سفارشامو باهاش انجام بدم
و نکته ای که الان برام جای سوال داره اینه که چطور طراحی کنم که ازین به بعد اگه خاستم تغییری توی کل سیستم بدم راحت باشه ...
مثلا من الان بخام یک سایت ساده طراحی کنم .میرم بعضی قسمت ها مثل کدهای مربوط به سشن و اتصال به بانک و اینا رو کپی میکنم و بقیه قسمت ها مثل اسلایدشو یا ... رو جداگانه طراحی میکنم
الان یکی از مشکلاتم اینه که مثلا توی سیستم جوملا میشه با نصب یک کامپوننت برای اکثر قسمت ها نظرات تعبیه کرد ... اما من نمیدونم واسه اینکه نظرات مطالب و اسلایدشو ها ساخته شه چیکارکنم...

یه سرچی راجب طراحی سیستم ماژولار کردم دیدم باید mvc انجام بشه و من هیچ اطلاعی ازش ندارم و....

میخاستم ببینم شما ایده ای دارید برای طراحی ماژولار بدون mvc ؟
مثلا من بیام یک سیستم خبرنامه بسازم و با چند کلیک روی هر سایتی خاستم بریزم؟

و سوالاتی ازن قبیل


لطفا دوستان هر نکته ای به ذهنشون میرسه که راهنمایی کنه من و سایر افراد بیان کنن

باتشکر

wallfa
دوشنبه 04 آبان 1394, 16:52 عصر
برادر یک کتاب بنده برای این موضوع ترجمه کردم به نام طراحی سیستم مدیریت محتوا به وسیله پی اچ پی و جی کوئری ، شما اول اون بخون بعد می تونی تبدیل کنی به چهارچوب های جدید و معماری های جدید آدرس خرید کتاب :

لینک خرید : طراحی سیستم مدیریت محتوا (http://kianpub.com/book/1513)

Mohammad-tashi
دوشنبه 04 آبان 1394, 17:25 عصر
اسم کتاب اصلیش چیه؟




چه مباحثی برای طراحی لازمه بخونم دوستان؟

Unique
سه شنبه 05 آبان 1394, 00:37 صبح
من خودم به صورت modular و oop (شی گرایی) یک CMS شخصی ساختم و همه پروژه هام را با اون انجام میدم.


ه سرچی راجب طراحی سیستم ماژولار کردم دیدم باید mvc انجام بشه و من هیچ اطلاعی ازش ندارم
کی گفته ؟ MVC فقط یک design pattern هست. همین و خیلی ها از جمله خود من بهش هیچ اعتقادی ندارن.

توصیه میکنم سورس کد جوملا و wordpress و drupal را بررسی کنید و از اون ها ایده بگیرین. کلا سیستم ماژولار نوشتن کار ساده و پیش پا افتاده ای نیست و نیاز به مهارت و تجربه داره. اگه احساس میکنید مهارت رلازم را ندارین و نمیدونین از کجا باید شروع کنید بهتره از CMS های آماده استفاده کنید.

Mohammad-tashi
سه شنبه 05 آبان 1394, 00:59 صبح
خب جوملا mvc یه دیگه ...میشه یک سیستم بدون mvc موژولار معرفی کنید؟
مهارت من طبیعتا خیلی کمتر از افرادی مانند شما بزرگوارانه ولی معتقدم باید از یک جا شروع کرد...

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

این چیزی که من دنبالشم بدون cms چی میشه اسمش؟من هرچی سرچ میکنم به چیزی ک دنبالشم نمیرسم.....

anvar
سه شنبه 05 آبان 1394, 07:48 صبح
کتابی که دوستمون در بالا معرفی کردند در این زمینه بهترین کتابی هست که منتشر شده - اسم اصلی کتاب اینه

CMS Design Using PHP and jQuery
مولفش هم Kae Verens
سال نشر 2010 (ممکنه ویرایش جدیدی هم داشته باشه اما نسخه ای که دست منه 2010 هست)

این کتاب دقیقا همون چیزی هست که شما دنبالش هستید - اگه پایه برنامه نویسیت خوبه دنبال کتاب دیگه ای نگرد چون وقتت رو تلف می کنی (من صفحات مقدماتی کتاب رو دانلود کردم و خوندم ترجمه اش سلیس و روان بود)
اگر قراره بصورت حرفه ای دنبال نوشتن یک CMS همه فن حریف باشی بهتره درک درستی از دنیای cms های متن باز داشته باشی
کتاب زیر هم می تونه مفید باشن
PHP 5 CMS Framework Development

Mohammad-tashi
سه شنبه 05 آبان 1394, 10:20 صبح
ببینید طبیعتا اینقدر نمیخام روی سیستم برنامه ریزی داشته باشم (هم احساس میکنم قدرت نداشته باشم هم وقت آخه من میخام هرچه سریع تر هسته رو داشته باشم و سایت های جدیدمو با اونا ست کنم تا در آیندهمجبور نباشم دوباره کاری کنم)...
بیشتر دنبال یک روش هستم یا یک هسته قابل توسعه و روان ....و البته امن

djtrex
سه شنبه 05 آبان 1394, 14:37 عصر
ببینید طبیعتا اینقدر نمیخام روی سیستم برنامه ریزی داشته باشم (هم احساس میکنم قدرت نداشته باشم هم وقت آخه من میخام هرچه سریع تر هسته رو داشته باشم و سایت های جدیدمو با اونا ست کنم تا در آیندهمجبور نباشم دوباره کاری کنم)...
بیشتر دنبال یک روش هستم یا یک هسته قابل توسعه و روان ....و البته امن

قبل از اینکه ادامه بدم خیلی خوبه این مطالب رو بخونید: (به هر حال داشتن آگاهی بیشتر از وضع موجود تصمیم گیری رو راحت تر میکنه! :) )

http://symfony.com/doc/current/book/from_flat_php_to_symfony2.html
این مطلب رو سازنده سیمفونی نوشته و به شما میگه flat php یا vanilla php! یا php خالی! چه تفاوتی با استفاده از کامپوننت های یک فریم ورکی مثل سیمفونی داره (البته فلسفه وجودی فریم ورک ها مشابه هم هستند در نتیجه فقط مختص فریمورکی مثل سیمفونی نیست!)
ارتباط دیتابیس، لود کردن تمپلیت ها، فایل های زبان، فرآیندهای امنیتی مثل sql injection, xss, csrf و... ، احراز هویت کاربر و دسترسی ها، مدیریت فایل ها، مدیریت سشن ها و ... همه اینها مربوط به چیزی که نیاز دارید بسازید نیست فقط زیر ساخت اونهاست و بیشتر وقت شما درگیر چیزی میشه که هدف اصلی سیستمون نیست!

*‌ شاید بعد از این مطلب بگید من دوست دارم فریم ورک خودمو بسازم این مطلب هم می تونه کمک خوبی بکنه:
http://symfony.com/doc/current/create_framework/index.html

خصوصا مقدمه اون که در مورد اینکه چرا من باید فریم ورک خودمو داشته باشم نوشته:
http://symfony.com/doc/current/create_framework/introduction.html#why-would-you-like-to-create-your-own-framework
(البته در آخر به این نتیجه میرسید که بهتره از یه فریم ورک استفاده کنید!!!! ولی باز هم قضاوت با خودتونه)
در اینجا در مورد mvc هم اشاره میشه و نکته مهمی که اینجا گفته میشه اینه که هدف شما نباید mvc بلکه SoC یا Separation of Concerns باشه:
https://en.wikipedia.org/wiki/Separation_of_concerns
و اینکه mvc تنها دیزاین پترن برای معماری تون نیست و نقص های زیادی در اپلیکیشن های تحت وب داره:
http://blog.ircmaxell.com/2014/11/alternatives-to-mvc.html
همچنین نویسنده لینک قبل در مورد mvc هم اینجا نوشته (یک تعریف ساده خصوصا برای کسانی که آشنایی ندارند)
http://blog.ircmaxell.com/2014/11/a-beginners-guide-to-mvc-for-web.html


* در مورد اینکه از cms های پیش ساخته (مثل وردپرس، جوملا، دروپال و ...) باید استفاده کنید یا از یک فریم ورک پیش ساخته مثل (لاراول، سیمفونی، زند، yii و ... ) برای ساخت cms خود استفاده کنید اینجا توضیحات خوبی داده شده:
http://www.ithands.com/blog/cms-or-php-framework-which-technology-is-better-for-my-business/


اگر تصمیم گرفتید از cms های پیش ساخته ای مثل وردپرس یا جوملا یا ... استفاده کنید برای ساخت ماژول های مورد نیازتون کافیه مستندات و آموزش مختلف رو بخونید! (در صورتی که قبلا ساخته نشده!)

اما اگه تصمیم گرفتید از فریم ورک ها استفاده کنید اول از همه باید با مفهوم cmf یا content management framework یا به عبارت دیگه decoupled cms آشنا بشید:
http://cmf.symfony.com/
http://decoupledcms.org/


cms/cmf های زیادی با این مفهوم و بر پایه فریم ورک هایی مثل سیمفونی، لاراول و ... نوشته شده. برعکس cms ها اینجا انعطاف پذیری بیشتری دارید:

سیمفونی:
https://pagekit.com/
http://sulu.io/en
https://sonata-project.org/
http://jarves.io/

لاراول:
https://octobercms.com/
https://pyrocms.com/
http://www.lavalite.org/
https://asgardcms.com/en

برای فریم ورک ها و حتی زبان های برنامه نویسی دیگه هم موارد زیادی میتونید پیدا کنید!

===================

امیدوارم لینک های زیاد باعث سردرگمی شما نشده باشه ولی وقت گذاشتن و مطالعه اونها باعث میشه تصمیم گیری بهتری برای آینده تون داشته باشید :)
نکته دیگه اینکه همه این ها چه فریم ورکهای ساخته شده چه cms هایی مثل جوملا و وردپرس و چه فریم ورک و cms شخصی خودتون نیازمند زمان یادگیری داره (حالا بعضی کمتر بعضی بیشتر) + اینکه همه اینها نیازمند دانشی مناسب در مورد php, oop, design patterns, testing, psr, composer & packages, و ... می باشند. (برای بعضی کمتر برای بعضی بیشتر!!)

موفق باشید :)