shaniaki
دوشنبه 31 فروردین 1383, 20:35 عصر
با عرض ادب:
تا یه ماه پیش کلی برنامه php راه انداخته بودم و حتی تو سورس بعضی هاش هم یه سیخ هایی زده بودم و چیز هایی اضافه و کم کرده بودم ولی هیچ وقت خودم هیچ پروژه ای رو از اول ساختارش رو نریخته بودم و شروع نکرده بودم ببینم چطوریه.
حدود یکی دو ماه پیش می خواستم روی یه سری html و فایل هایی که روی یه وب سروری آپلود می کردم رمز عبور بذارم. با کلی این ورو اون ور کردن دیدم بهتره این کار رو با htaccess های خود apache انجام بدم. نیاز به یه چیزی داشتم که خودش یه واسطی(interfaceی) داشته باشه که به سادگی با کاربر ها و گروه های apache کار کنه و htaccess های مختلفی رو بنویسه و ویرایش کنه به اضافه یه سری کارهای خورده ریز دیگه. برخلاف تصورم چیز کاملی که تمام نیازهای من رو برآورده بکنه پیدا نکردم. به این نتیجه رسیدم که بهتره خودم یه interface بر اساس وب بنویسیم که بتونم این کار رو باهاش انجام بدم و دیدم بهترین انتخاب php هست و فرصت خوبیه که با یه پروژه کوچیک script نویسی صفحات وب (از اول) رو تجربه کنم.
اول یه کم فکر کردم و به کشف و شهود پرداختم و کار رو از اول تا آخر برانداز کردم(شرمنده؛ اینجاشو نمی تونم توضیح بدم که چطوری انجام می دم) بعد PHPED رو باز کردم و شروع کردم به نوشتن.
اولین کاری که کردم یه صفحه php باز کردم و شروع کردم به نوشتن کلاس های مورد نیازم. برای هر چیزی که نیاز داشتم یه کلاس با چند تا متد و متغیر عضو نوشتم. خیلی syntax ساده ای داشت و این قسمت رو با اینکه خسته کننده بود بدون مشکل خاصی انجام دادم. خیلی ها رو می بینم که این قسمت رو انجام نمی دن یا نیمه کاره ول می کنن شروع می کنن به کارهای دیگه ولی برای من نتیجه این قسمتش بعدا خیلی به دردم خورد.
بعد یه فایل درست کردم که include هایی که لازم دارم رو توی اون انجام بدم و توی تمام صفحات فقط این صفحه رو include کنم. فایل کلاس هایی که نوشتم رو توش include کردم.
بعد یه فایل درست کردم به اسم farsi.php و گفتم تمام رشته هایی که قراره تو صفحاتم چاپ شن رو این تو با یه متغیر php اضافه می کنم(Internationalization و Localization با هم). شاید این برنامه مو فقط خودم استفاده می کردم ولی گفتم بذار یه جوری بنویسمش که اصولی باشه و تبدیل زبانش ساده باشه و همینطور هم شد. برنامه من الآن یه english.php هم داره که به راحتی می تونید کلش رو با تغییر یه متغیر انگلیسی کنید.طبعا این فایل هم توی اون فیل قبلی include کردم.
مرحله بعدی تکمیل ساختار برنامه انتخاب ساختار تولید خروجی بود. برای این کار گفتم logic برنامه از interfaceش باید کاملا جدا باشه. قبلا کدهای برنامه هایی مثل phpbb(همین فروم) رو دیده بودم و می دونستم که از template ها استفاده می کنند و در قلب اون فایل های tpl قرار داره. تصمیم گرفتم از همین سیستم استفاده کنم. smarty رو دانلود کرده بودم و help کوچیکی که همراهش بود رو قبلا خونده بودم. همین کار رو با استفاده از کلاس هایی آماده براتون انجام می ده. به این ترتیب که شما یه نمونه(instance) ازش تو صفحاتتون می سازید بعد یه سری متغیر رو که همون چیزهاییه که می خواهید تو صفحتون نشون داده بشه توش تنظیم( set ) می کنید. بعد یه فایل tpl رو که در واقع ساختار پایه html خروجی تون رو دربر داره و از قبل نوشتیدش با یکی از متد های کلاس smarty صدا می زنید و نتیجه این می شه که خروجیتون که حاوی اطلاعاتیه که قبلا با استفاده از متغیر ها تعیین کردید در ساختار html که توی فایل tplتون نوشتید نمایش داده می شه. اگر علاقه مند به استفاده از این شیوه شدید یه سر به http://smarty.php.net بزنید.
در این مرحله شروع به ساختن صفحاتم کردم در تمام مدت یه phpED و یه Dreamweaver تو صفحه ام باز بود که تو اولی منطق و ساختار برنامه مو می نوشتم و تو دومی فایل های tplم رو می نوشتم. نو شتن این قسمت خیلی ساده و سریع بود چون کارهای مهم رو قبلا در کلاس هایی که اول کار نوشته بودم انجام داده بودم و کار من تو این قسمت بیشتر جنبه طراحی صفحات وب داشت تا برنامه نویسی. البته بهتر بود این دو تا کار رو موازی انجام نمی دادم و اول قسمت برنامه نویسی شو انجام می دادم و بعد ساختن tpl ها رو؛ ولی اینطوری بیشتر حال می داد! :wink:
آخر سر هم یه سری کارهای بسته بندی انجام دادم. چیز هایی که ممکن بود در کاربرد های مختلف تغییر کنند(مثل نام فایل حاوی رشته های زبان یا نام فایل هایی که حاوی اطلاعات کاربران و ... بود) رو از توی صفحاتم جمع کردم و به جاشون یه متغیر گذاشتم و این متغیر ها رو تو یه config.php نوشتم که توی همون فایلی که اول کار گفتم include کردم. دو تا tpl هم به عنوان header و footer نوشتم و توی اول و آخر خروجی هام چاپشون کردم.
بعدشم همه شونو برای آزمایش توی یه linux گذاشتم و شروع کردم به امتحان کردنشون. یه چند تا سوتی داشتم که اصلاحشون کردم. آخر سر هم UPLOAD!
بله! کار می کرد. خیلی هم خوب. البته هنوز خیلی ناقص هست ولی نگاه که می کنم برای شروع نوشتن php از اول کار باحالی بود.
امیدوارم به دردتون بخوره.
یه عشق برنامه نویسی خفن
تا یه ماه پیش کلی برنامه php راه انداخته بودم و حتی تو سورس بعضی هاش هم یه سیخ هایی زده بودم و چیز هایی اضافه و کم کرده بودم ولی هیچ وقت خودم هیچ پروژه ای رو از اول ساختارش رو نریخته بودم و شروع نکرده بودم ببینم چطوریه.
حدود یکی دو ماه پیش می خواستم روی یه سری html و فایل هایی که روی یه وب سروری آپلود می کردم رمز عبور بذارم. با کلی این ورو اون ور کردن دیدم بهتره این کار رو با htaccess های خود apache انجام بدم. نیاز به یه چیزی داشتم که خودش یه واسطی(interfaceی) داشته باشه که به سادگی با کاربر ها و گروه های apache کار کنه و htaccess های مختلفی رو بنویسه و ویرایش کنه به اضافه یه سری کارهای خورده ریز دیگه. برخلاف تصورم چیز کاملی که تمام نیازهای من رو برآورده بکنه پیدا نکردم. به این نتیجه رسیدم که بهتره خودم یه interface بر اساس وب بنویسیم که بتونم این کار رو باهاش انجام بدم و دیدم بهترین انتخاب php هست و فرصت خوبیه که با یه پروژه کوچیک script نویسی صفحات وب (از اول) رو تجربه کنم.
اول یه کم فکر کردم و به کشف و شهود پرداختم و کار رو از اول تا آخر برانداز کردم(شرمنده؛ اینجاشو نمی تونم توضیح بدم که چطوری انجام می دم) بعد PHPED رو باز کردم و شروع کردم به نوشتن.
اولین کاری که کردم یه صفحه php باز کردم و شروع کردم به نوشتن کلاس های مورد نیازم. برای هر چیزی که نیاز داشتم یه کلاس با چند تا متد و متغیر عضو نوشتم. خیلی syntax ساده ای داشت و این قسمت رو با اینکه خسته کننده بود بدون مشکل خاصی انجام دادم. خیلی ها رو می بینم که این قسمت رو انجام نمی دن یا نیمه کاره ول می کنن شروع می کنن به کارهای دیگه ولی برای من نتیجه این قسمتش بعدا خیلی به دردم خورد.
بعد یه فایل درست کردم که include هایی که لازم دارم رو توی اون انجام بدم و توی تمام صفحات فقط این صفحه رو include کنم. فایل کلاس هایی که نوشتم رو توش include کردم.
بعد یه فایل درست کردم به اسم farsi.php و گفتم تمام رشته هایی که قراره تو صفحاتم چاپ شن رو این تو با یه متغیر php اضافه می کنم(Internationalization و Localization با هم). شاید این برنامه مو فقط خودم استفاده می کردم ولی گفتم بذار یه جوری بنویسمش که اصولی باشه و تبدیل زبانش ساده باشه و همینطور هم شد. برنامه من الآن یه english.php هم داره که به راحتی می تونید کلش رو با تغییر یه متغیر انگلیسی کنید.طبعا این فایل هم توی اون فیل قبلی include کردم.
مرحله بعدی تکمیل ساختار برنامه انتخاب ساختار تولید خروجی بود. برای این کار گفتم logic برنامه از interfaceش باید کاملا جدا باشه. قبلا کدهای برنامه هایی مثل phpbb(همین فروم) رو دیده بودم و می دونستم که از template ها استفاده می کنند و در قلب اون فایل های tpl قرار داره. تصمیم گرفتم از همین سیستم استفاده کنم. smarty رو دانلود کرده بودم و help کوچیکی که همراهش بود رو قبلا خونده بودم. همین کار رو با استفاده از کلاس هایی آماده براتون انجام می ده. به این ترتیب که شما یه نمونه(instance) ازش تو صفحاتتون می سازید بعد یه سری متغیر رو که همون چیزهاییه که می خواهید تو صفحتون نشون داده بشه توش تنظیم( set ) می کنید. بعد یه فایل tpl رو که در واقع ساختار پایه html خروجی تون رو دربر داره و از قبل نوشتیدش با یکی از متد های کلاس smarty صدا می زنید و نتیجه این می شه که خروجیتون که حاوی اطلاعاتیه که قبلا با استفاده از متغیر ها تعیین کردید در ساختار html که توی فایل tplتون نوشتید نمایش داده می شه. اگر علاقه مند به استفاده از این شیوه شدید یه سر به http://smarty.php.net بزنید.
در این مرحله شروع به ساختن صفحاتم کردم در تمام مدت یه phpED و یه Dreamweaver تو صفحه ام باز بود که تو اولی منطق و ساختار برنامه مو می نوشتم و تو دومی فایل های tplم رو می نوشتم. نو شتن این قسمت خیلی ساده و سریع بود چون کارهای مهم رو قبلا در کلاس هایی که اول کار نوشته بودم انجام داده بودم و کار من تو این قسمت بیشتر جنبه طراحی صفحات وب داشت تا برنامه نویسی. البته بهتر بود این دو تا کار رو موازی انجام نمی دادم و اول قسمت برنامه نویسی شو انجام می دادم و بعد ساختن tpl ها رو؛ ولی اینطوری بیشتر حال می داد! :wink:
آخر سر هم یه سری کارهای بسته بندی انجام دادم. چیز هایی که ممکن بود در کاربرد های مختلف تغییر کنند(مثل نام فایل حاوی رشته های زبان یا نام فایل هایی که حاوی اطلاعات کاربران و ... بود) رو از توی صفحاتم جمع کردم و به جاشون یه متغیر گذاشتم و این متغیر ها رو تو یه config.php نوشتم که توی همون فایلی که اول کار گفتم include کردم. دو تا tpl هم به عنوان header و footer نوشتم و توی اول و آخر خروجی هام چاپشون کردم.
بعدشم همه شونو برای آزمایش توی یه linux گذاشتم و شروع کردم به امتحان کردنشون. یه چند تا سوتی داشتم که اصلاحشون کردم. آخر سر هم UPLOAD!
بله! کار می کرد. خیلی هم خوب. البته هنوز خیلی ناقص هست ولی نگاه که می کنم برای شروع نوشتن php از اول کار باحالی بود.
امیدوارم به دردتون بخوره.
یه عشق برنامه نویسی خفن