PDA

View Full Version : حرفه ای: شناورسازی قالب و زبان در یک اسکریپت



xoogle.ir
دوشنبه 03 خرداد 1389, 17:22 عصر
سلام دوستان
دیروز 2 تا اسکریپت آماده که یکی یه فروشگاه ساز بود و یکی یه اسکریپت سایت دوست یابی بود رو نگاه میکردم دیدم که این 2 تا اسکریپت پوشه هایی به نام templates و lang دارن و اومدن به قولی قالب و زبان سایت رو از محتوی جداسازی کردند به طوری که ادمین سایت میتونه در هر لحظه ای که بخاد قالب یا زبان پیش فرض سایتش رو عوض کنه.

میخاستم بدونم که این کار رو چه طور انجام میدن و برای اینکه توی برنامه هامون به این شکل عمل کنم چه چیزهایی لازمه که یاد داشته باشم ؟؟
اصلا ساز و کارش به چه صورت هست ؟

راستشو بخایین از وقتی این اسکریپت ها رو دیدم نسبت به برنامه نویسی خودم کاملا نا امید شدم ؟ :افسرده:

pashaie
دوشنبه 03 خرداد 1389, 18:01 عصر
برای اینکار خودتم می تونی یه فریمورک ساده بنویسی که به صورت یه Master Page عمل کنه و دیتا های مختلف رو از بخشی که برنامه داره اجرا میشه رو براش بفرستی.

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

http://www.smarty.net/
اینم (http://www.webresourcesdepot.com/19-promising-php-template-engines/)یه لیست 19 تای از فریمورک ها که البته به Template Engine هم مشهورن (البته شاید درستش هم همون Template Engine باشه :لبخند: )

یه نکته دیگه، تو این روش برنامه نویسی فقط داری Model رو از View جدا می کنی و خب هر چند این روش واسه بعضی از برنامه ها جواب بده ولی در صورت بزرگ تر شدن برنامه این روش هم جواب نخواهد داد!
از من میشنوی، برو سمت فریمورک های MVC یا Model-View-Controller که ثابت کردند بهترین روش واسه برنامه نویسی تحت وبد.
برای PHP فریمورک های خیلی خوبی هم تو این زمینه نوشته شده که خدایی زندگی رو خیلی راحت می کنند!
مثل
Zend Framework (http://framework.zend.com/)
Symfony (http://www.symfony-project.org/)
CakePHP (http://cakephp.org/)

rapidpich
دوشنبه 03 خرداد 1389, 18:03 عصر
وقتشه دنبال یک فریمورک بگردی!

trade_mark
دوشنبه 03 خرداد 1389, 18:19 عصر
در جواب horp30 عزیز هم باید بگم که شما باید با مفهمو کلاس ها و همچنین کد نویسی استاندارد در php به طور کامل آشنا بشی.
تو انجمن هم به وفور در مورد این موضوع بحث شده.
این لینک هم در مورد ساخت سایت به چند زبان صحبت کرده
http://www.bitrepository.com/php-how-to-add-multi-language-support-to-a-website.html

xoogle.ir
دوشنبه 03 خرداد 1389, 21:45 عصر
فکر کنم قراره منم آشپز بشم :لبخند:
توی مشهد کلاس برای zend پیدا نکردم قراره cakephp یاد بگیرم! جلسه ای 28 تومان :افسرده:
ولی اگه با cakephp بشه همچین چیزایی نوشت حاضرم یه صفرم بذارم جلوش بدم استاد :کف:

mirmousavi.m
دوشنبه 03 خرداد 1389, 22:55 عصر
این عمل جداسازی لایه ها در برنامه نویسی خیلی مهمه
جدا کردن لایه دیتابیس، لایه اینترفیس و لایه بیزینس...
اسمارتی هم برای php خیلی عالیه و علاوه بر جداسازی امکانات دیگری هم داره، مثل کش کردن...
برای یادگیری اسمارتی از خود سایتش میشه به خوبی یاد گرفت و یه کتابی هم به اسم "راهنمای استفاده از SMARTY" از انتشارات ناقوس با ترجمه سهیل صالحی هست که اونم بد نیست ولی من سایت رو پیشنهاد می‌کنم.
کلاس و اینا هم به نظرم بیخیال بشو حتی اگه 1000 تومان باشه، سعی کن خودت یاد بگیری...

pashaie
دوشنبه 03 خرداد 1389, 23:27 عصر
توی مشهد کلاس برای zend پیدا نکردم قراره cakephp یاد بگیرم!
اگه می خوای یه چیز اصولی یاد بگیری پیشنهاد میکنم که بری طرف zend، چون اولن خود شرکت zend (سازنده PHP ) داره اونو ساپورت می کنه و ثانیا واسش مدارک معتبر وجود داره و ثالثا کتاب های زیادی براش نوشته شده و .....
از همه مهمتر یه ساختار کاملا مهندسی ساز داره.
ولی خب یه دو سه هفته ای باید باهاش سرو کله بزنی تا قلقش بیاد دست.

xoogle.ir
سه شنبه 04 خرداد 1389, 13:35 عصر
متاسفانه من نتونستم کتاب خوبی برای آموزش zend پیدا کنم اگر شما pdf مناسب دارید لطفا آپلود کنید.
خودم هم دوست دارم zend یاد بگیرم ولی وقتی امکاناتش نیست چه کار باید بکنم ؟؟؟
الان zend server رو نصب کردم ولی از اینجا به بعدش رو دیگه نمیدونم چه کار باید بکنم حتی یه پیام خوش آمد گویی هم نمیدونم چه جوری باید بنویسم :لبخند:
یکی کمکم کنه شدم مثل روز اول !

trade_mark
سه شنبه 04 خرداد 1389, 14:02 عصر
متاسفانه من نتونستم کتاب خوبی برای آموزش zend پیدا کنم اگر شما pdf مناسب دارید لطفا آپلود کنید.
نگران نباش
فعلا یکم رو این مطالعه کن ببین بدردت می خوره
بچه های ایران پی اچ پی ساختن
http://blog.pitm.net/downloads/mvc-gallery.pdf

xoogle.ir
سه شنبه 04 خرداد 1389, 14:48 عصر
نگران نباش
فعلا یکم رو این مطالعه کن ببین بدردت می خوره
بچه های ایران پی اچ پی ساختن
http://blog.pitm.net/downloads/mvc-gallery.pdf
اینو خوندم هرچند فکر کنم از یک framework دیگه استفاده کرده نه zf

rapidpich
چهارشنبه 05 خرداد 1389, 15:27 عصر
متاسفانه من نتونستم کتاب خوبی برای آموزش zend پیدا کنم اگر شما pdf مناسب دارید لطفا آپلود کنید.
خودم هم دوست دارم zend یاد بگیرم ولی وقتی امکاناتش نیست چه کار باید بکنم ؟؟؟
الان zend server رو نصب کردم ولی از اینجا به بعدش رو دیگه نمیدونم چه کار باید بکنم حتی یه پیام خوش آمد گویی هم نمیدونم چه جوری باید بنویسم :لبخند:
یکی کمکم کنه شدم مثل روز اول !

کتاب خوب؟ واسه زند اگه یه صفحه درست و حسابی تو اینترنت پیدا کنی یا یک مقاله خوب باید کلاتو بندازی هوا. یکی از بزرگترین مشکلات زند همینه. اگه انگلیسی بلدی برو دنبال سیمفونی یا codeinteger. وگرنه من نمیدونم چه فریمورکی هست که آموزش فارسی داشته باشه. فکر میکنم کیک یه سایت فارسی داره.
در هر حالت طرف زند نرو که ...(من خودم زند کار میکردم)

xoogle.ir
چهارشنبه 05 خرداد 1389, 15:37 عصر
ثالثا کتاب های زیادی براش نوشته شده و .....



کتاب خوب؟ واسه زند اگه یه صفحه درست و حسابی تو اینترنت پیدا کنی یا یک مقاله خوب باید کلاتو بندازی هوا. یکی از بزرگترین مشکلات زند همینه. اگه انگلیسی بلدی برو دنبال سیمفونی یا codeinteger. وگرنه من نمیدونم چه فریمورکی هست که آموزش فارسی داشته باشه. فکر میکنم کیک یه سایت فارسی داره.
در هر حالت طرف زند نرو که ...(من خودم زند کار میکردم)

من روی حساب حرف دوستمون گفتم یکی کتاب آپلود کنه :لبخند:
از نظر زبان اون قدرها مشکلی ندارم ولی کلا قرار شد برم cakephp یاد بگیرم.
راستی چرا شما میگی طرف زند نرو ؟؟

rapidpich
چهارشنبه 05 خرداد 1389, 18:18 عصر
این بستگی داره که انتظار شما از یک فریمورک چی باشه. اینکه به کدنویسی شما نظم بده. کارها رو راحت کنه.برا اینکار زند اصلا یک فریمورک درست و حسابی نیست. مشکل زیاذ داره و کسی جوابگو نیست. من تا حالا چندین تا باگ یا کمبود دیدم که با اینکه بیش از یکسال بود مطرح شده بودن کسی جواب نداده بود و مشکل حل نشده بود.
یا اینکه فریمورک زند یک bootstrap استاندارد نداره. برا همین من یکجور کد میزنم و یک نفر دیگه یکجور دیگه و هیچ کدوم با اونیکی سازگار نیست.
زند فقط یک سری توابع و کلاس که شما میتونید تو هر فریمروک دیگه ای هم از اونها استفاده کنید و چیزی رو از دست نمیدید.

pashaie
چهارشنبه 05 خرداد 1389, 19:15 عصر
کتاب خوب؟ واسه زند اگه یه صفحه درست و حسابی تو اینترنت پیدا کنی یا یک مقاله خوب باید کلاتو بندازی هوا. یکی از بزرگترین مشکلات زند همینه.

عزیز من چرا بی انصافی میکنی؟
کتابهای مربوط به زند
Easy PHP Websites with Zend Framework (http://www.easyphpwebsites.com/)
Surviving The Deep End (http://www.survivethedeepend.com/)
Guide to Programming with Zend Framework (http://www.phparch.com/c/books/id/9780973862157)
Beginning Zend Framework (http://www.amazon.com/Beginning-Zend-Framework-Armando-Padilla/dp/1430218258)[/URL]

[URL="http://robertbasic.com/blog/online-resources-for-zend-framework/"]لیست رسورس های زند (http://www.easyphpwebsites.com/)

اینم یه فروم خیلی خیلی قوی درباره زند ZFTalk (http://www.zftalk.com/).
در ضمن، همیشه تو کانال IRC زند، 50 60 نفر آنلاینن که می تونی به صورت لحظه ای پاسخ بگیری

یکی از ویژگی های که هیچکدوم دیگه از فرم ورکای دیگه ندارند، پشتیبانی یه IDE قوی از این فریم ورکه! شما Zend Studio رو نصب کن، ببین طراحی سایت چقدر راحت میشه!

البته زند یه مشکل داره که معمولا هرکسی بخواد ازش ایراد بگیره اونو مطرح می کنه اونم Performance که نسبت به سایر فریمورکای دیگه پایین تره.
اینم بگم که به خاطر همین مورد، من مجبور شدم یه شبهه فریمورک MVC واسه خودم بنویسم که کار منو راه انداخت.

rapidpich
پنج شنبه 06 خرداد 1389, 01:02 صبح
یکی از ویژگی های که هیچکدوم دیگه از فرم ورکای دیگه ندارند، پشتیبانی یه IDE قوی از این فریم ورکه! شما Zend Studio رو نصب کن، ببین طراحی سایت چقدر راحت میشه!ربطی نداره هر ide که کد رو بخونه و autocomplete کنه هر فریمورکی رو پشتیبانی میکنه.
netbeans،zend studio،PDT و phped همه فریمورکها رو پشتیبانی میکنند(سیمفونی،زند،دروپال)

در مورد کند بودن کیک و سیمفونی از زند کندتر هستند البته این خیلی بستگی به بوتسترپ شما داره و همونطور که گفتم چون زند یک بوتسترپ استاندارد نداره نمیشه روش حساب باز کرد.
در ضمن من از الان یک نکته رو بگم هرچی یک فریمورک سرعت خودش کمتر باشه سرعت کد زدن توش بیشتره. مثلا دلیل کند بودن سیمفونی جلوگیری از حملات XSS،CSRF پشتیبانی از i18n و l10n و سیستم پیشرفته قالبش به صورت پیشفرض هستش. من توی کد زدن اصلا به این چیزا فکر نمیکنم و وقتی از من نمیگیره. پس کند بودن زند رو زیاد یک دلیل منفی نبینید. ممکنه برای پروژه های کوچیک بد باشه ولی ما از فریمورک برای پروژه های بزرگ میخوایم استفاده کنیم.
برای کتابهای مربوط به زند هم باید بگم آموزشهایی که برای CIو سیمفونی خیلی خیلی بیشتر از زند هست. و درضمن من در زند به مشکلاتی بر خوردم که هیچ راه حلی برای اونها پیدا نکردم و حتی بدتر چند مورد بر خوردم که جوابش این بود که اصلا راه حلی وجود نداره! این دیگه خیلی بد بود

pashaie
پنج شنبه 06 خرداد 1389, 10:12 صبح
من قبل از هرچیزی بگم که من حدود 2 3 ماهی هست که کلا از Php سوئیچ کردم رفتم رو ASP.Net و با MVC 2 دارم کار می کنم و در نتیجه با Zf هم الان کار نمی کنم که بخوام متعصبانه ازش دفاع کنم.

و اما دوست عزیز، من هرچی فکر می کنم متوجه نمیشم که چرا شما اینجا داری سعی می کنی یه حرف بزنی که با واقعیت جور در نمی یاد.
شما اینجا بر می گردی می گی که:


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


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


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



ربطی نداره هر ide که کد رو بخونه و autocomplete کنه هر فریمورکی رو پشتیبانی میکنه.
netbeans،zend studio،PDT و phped همه فریمورکها رو پشتیبانی میکنند(سیمفونی،زند،دروپال)

شما واقعا تا حالا با zend studio کار کردی؟ بله autocomplete رو اکثر IDE ها ساپورت می کنن ولی ساختن Controller و View و Test و غیره رو تنها با یک کلیک و دادن یک اسم رو تنها داره zend studio برای zf ارائه می ده. واقعا ساخت اتوماتیک فایلهای لازم از نظر شما هیچ مزیتی محسوب نمی شه؟ یعنی شما ترجیح می دی که خودت بشینی و به ازای هر Action و یا Controller؛ 5 6 دقیقه وقت صرف کنی و فایل ها و کلاس های مربوطه شو درست کنی؟
اگه ابن مزیت محسوب نمی شه من بشخصه نمی دونم که چی مزیت محسوب می شه.

دوباره تکرار می کنم، قصد من تو این پست طرف داری از ZF نبود و نیست. فقط و فقط یه سری واقعیات رو در باره زند بیان کردم.
و البته امیدوارم که منو به خاطر لحن بیانم ببخشید.

rapidpich
پنج شنبه 06 خرداد 1389, 10:57 صبح
من واقعا متوجه ربط این موضوع نمی شم که اگه برای "CIو سیمفونی خیلی خیلی بیشتر از زند هست" این چه ربطی با این داره که "واسه زند اگه یه صفحه درست و حسابی تو اینترنت پیدا کنی یا یک مقاله خوب باید کلاتو بندازی هوا"حرفی که میخام بزنم اینه:توی زند به یک سری مشکلاتی برمیخوری که هیچ جوابی براشون پیدا نمیکنی، و هیچکسی نیست که کمکت کنه.

در مورد زند استودیو هم خیلی وقته باش کار نکردم. از اونجایی هم که رم سیستمم کمه(1گیگه همش!) اصلا نمیتونم راحت اجراش کنم. ولی اونوقتا که استفاده میکردم(فکر میکنم 5.5 بود)

بعدش هم 5-6 دقیقه برای هر کنترلر؟ یک کلاس هست کپی پیست میکردم.

-اگه ابن مزیت محسوب نمی شه من بشخصه نمی دونم که چی مزیت محسوب می شه.

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

کلا من به یک فریمورک به چشم چیزی نیگا میکنم که کد زدن رو آسونتر کنه و یک باری رو از روی دوش برنامه نویس برداره. زند اصلا چیزی نبود که اینکارو بکنه. اما قویا میگم سیمفونی اینطوریه. آدم رو تنبل میکنه. دیگه واست مهم نیست XSS چیه، چطوری کدت رو چند زبانه بنویسی یا چطور کش کنی. تو سیمفونی چند تا ستینگ رو عوض میکنی و همه چیز حله.


در ضمن اگه زند اینقدر خوب بود چرا سویچ کردی رو دات نت؟ ;) (دعوا را نندازیا شوخی کردم!)

pashaie
پنج شنبه 06 خرداد 1389, 11:44 صبح
در ضمن اگه زند اینقدر خوب بود چرا سویچ کردی رو دات نت؟ ;) (دعوا را نندازیا شوخی کردم!)

آها! حالا این شد یه سوال درست و حسابی:لبخند:
آقا جان من کی گفتم زند خیلی خوبه؟ من میگم زند اینه! کتاب داره، یه IDE قوی داره و همچنین پشتیبانی نسبتا خوب (چون یه شرکت کته کلفت پشتشه! )

حالا اینکه بقیه فریمورک ها بد هستن که من اولا همچین چیزی ننوشتم، ثانیا همچین حرفی هم نمی تونم بزنم چه با الباقی من کار نکردم که به خوام مقایسشون کنم!

rapidpich
جمعه 07 خرداد 1389, 01:52 صبح
همچنین پشتیبانی نسبتا خوب
اصلا، این یکی از دلایلی بود که سوئییچ کردم رو سیمفونی. پشتیبانی به هیچ وجه نداره. کلی سوال تو فرومش هست که جواب داده نشده. وقتی سرچ میکنی واسه یه چیزی میبینی یکی دیگه یک سال قبل همچی مشکلی داشته وحل نشده حساب کن چقدر سرد میشی


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

trade_mark
جمعه 07 خرداد 1389, 11:57 صبح
آقای پاشایی و mr rapidpich حر ف هر دوتا درست
هدف این تایپک شمردن برتری یه ide نسبت به ide دیگه نیست در مورد روش کد نویسی استاندارد و قابل انعطعاف می باشد.
فقط خواستم به این نکته هم توجه کنید
موفق باشید

rapidpich
جمعه 07 خرداد 1389, 17:42 عصر
عزیز وقتی دعوا میشه دیگه مهم نیست! فقط پتو تو بچسب

trade_mark
جمعه 07 خرداد 1389, 21:39 عصر
عزیز وقتی دعوا میشه دیگه مهم نیست! فقط پتو تو بچسب
جالبه، شما اینجا رو با رینگ بوکس اشتباه گرفتی:چشمک: