![]() |
|
|||||||
![]() |
|
|
ابزارهای موضوع | نحوه نمایش |
|
#1
|
|||
|
|||
|
سلام
از عنوان انتخاب شده معلوم هست که در مورد چی هست ولی من واسه اون دسته از کسانی که به تازگی وارد برنامه نویسی شند توضیح می دم : برنامه نویسی شی گرا (OOP مخفف Object Oriented Programming) شیوه ای از برنامه نویسی است که بیشتر بر روی شی کار میکند . هر شی دارای توابع و متغیر هایی می باشد که درون شی تعریف می شوند. در PHP ما با استفاده از Class اشیا مورد نظر خود را تعریف می کنیم . مثال : کد PHP:
کد PHP:
برای اینکه ما باید این شی را در برنامه به یک متغیر نسبت بدهیم . بدین صورت : کد PHP:
تا اونجا که من میدونم در PHP 4 یک کپی از این کلاس درون متغیر یا شی قرار می گیره .. اما در PHP 5 فقط یک دستگیره از کلاس به شی ارجا می شود. حالا نوبت به استفاده تابع درون کلاس می باشد. برای اینکه به توابع یا متغیر های درون Class دسترسی داشته باشیم باید از پس از نام متغیر از <- استفاده کنیم : کد PHP:
خیلی ساده بود نه ؟ حالا یکم سخت ترش می کنیم. به کلاسی که ساختیم یک متغیر اضافه می کنیم. بدین صورت : کد PHP:
کد PHP:
کد PHP:
جواب خیلی سادست .. همون طور که نام تابع رو صدا زدیم می تونیم بجای نام تابع نام متغیر رو بنویسیم و به متغیر درون کلاس دسترسی داشته باشیم. کد PHP:
بله .. توسط متغیر this$ می توانید به متغیر ها درون یک شی دسترسی داشته باشید و به آنها مقدار بدهید یا مقدار آنها را درون متغیر دیگری قرار دهید یا مقدار آن را مورد مقایسه قرار دهید. توی یک مثال ساده توسط this$ به متغیر myname$ مقداری می دهیم : کد PHP:
کد PHP:
کد PHP:
کد PHP:
کد PHP:
کد PHP:
کد PHP:
انشا الله اگر این جلسه مورد استقبال دوستان قرار گرفت در جلسه دوم به بحث در مورد : کد PHP:
اگر سوالی در این مورد داشتید بپرسید .. فقط سوالاتی که در همین مورد هستند رو مطرح کنید . موفق و پیروز باشید
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#2
|
|||
|
|||
|
سلام
امروز می خوایم در این موارد باهم صحبت کنیم کد PHP:
()construct__ تابعی که با این نام باشه هنگام ساختن یک شی از کلاس بطور خود کار اجرا میشه ()destruct__ تابعی که با این نام باشه هنگامی که شما عملیاتتون با شی تموم بشه بطور خود کار اانجام می شه ::self با این متد می تونید از داخل کلاس یک تابع از کلاس رو صدا بزنید : arentاین متد به کلاس والد اشاره می کنه .. زمانی که شما یک کلاس رو فرزند کلاس دیگری قرار بدید با یک مثال ساده کار رو شروع می کنیم. به کد زیر نگاه کنید کد PHP:
کد PHP:
حالا اگه این تابع construct__ چند تا آرگمان در ابتدا از ما بخواد باید چطوری این آرگمان ها رو مقدار دهی بکنیم ؟ حالا به کد زیر نگاه کنید کد PHP:
کد PHP:
وگر نه شما با خطایه کد:
Warning: Missing argument 1 for Myclass::__construct(), called in FILE ADRESS on line LINE NUMBER and defined in FILE ADRESS on line LINE NUMBER کد PHP:
(این قابلیت در php 5 هم support می شود) حالا به این کد نگاه کنید : کد PHP:
کد PHP:
کد PHP:
کد PHP:
حالا به این کد نگاه کنید : کد PHP:
همون طور که دید ما از داخل تابع Myclass تابع t_empty رو صدا زدیم. شما می تونید با استفاده از این متد به دیگر توابع دسترسی داشته باشید و آنها رو اجرا کنید. اما : arentقبل از توضیح parent باید به شما یاد بدم که چطوری یک کلاس رو والد کلاس دیگری قرار بدیم . به این کد نگاه کنید : کد PHP:
و توسط متد : arent تابع example کلاس مادر رو صدا زدیم .فکر نمی کنم مطلبی مونده باشه .. با آرزوی موفقیت برای شما
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#3
|
|||
|
|||
|
سلام
من نمی دونم چرا به برنامه نویسی Oop اصلا احمیت داده نمی شه ! واسه پیدا کردن یک کار معمولی هم حداقل شما باید Oop بلد باشی .. بریم سر اصل مطلب امروز در رابطه با یکی از نکات قدرت Php می خوایم صحبت کنیم . پولی مورفیسم می شه گفت پیچیده ترین روش برنامه نویسی در مبحث oop بر می گرده به این بخش . با استفاده از این روش می توانید کنترل برنامه را افزایش داده و از تعریف چند آبجکت برای چند کلاس جلوگیری کرد . این مثال از صفحه 67 و 68 PHP 5 Power Programming هست . کد PHP:
عملکرد برنامه : دو کلاس یکی با نام Cat و دیگری با نام Dog وجود دارد . تابع printTheRightSound با استفاده از پولی مورفیسم به دنبال کلاس مورد نظر می گردد و تابع موجود در کلاس را صدا می زند . ولی یک اشکال در این روش وجود دارد .. اگر بخواهیم چند صدا از دیگر حیوانات اضافه کنیم باید بدنه Else If را گسترش بدهیم که این روش خوانایی برنامه را پایین می آورد .. راه حل جالبی برای این کار در PHP وجود دارد . آن هم استفاده از توارث است . این بار یک کلاس با نام Animal به برنامه اضافه می کنیم. به این کد با دقت نگاه کنید : کد PHP:
نیاز به توضیح خاصی نیست (اینجور که فکر می کنم). در صورت اینکه سوالی بود همینجا بپرسید (پیام خصوصی نفرستید :wink .
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#4
|
|||
|
|||
|
سلام
دوستانی که بحث رو دنبال کردند دیگه حالا آمدگی پروژه های خیلی بزرگ تر رو دارند. با یک تمپلت انجین کار رو شروع می کنیم. زنگ تفریح این موتور تمپلت خیلی سادست پس زیاد خوشحال نشید و فردا برید یه smrty برا خودتون بسازید و پس فردا هم یک PHP جدید :wink:ابتدا به کد مربوط به فایل کلاس اصلی نگاه کنید. کد PHP:
کد PHP:
کد PHP:
3 تا تابع اصلی داره این کلاس کد:
function assign($var_array) اول از همه چک می کنه که ورودی تابع یک آرایه باشه .. در غیر این صورت خطا صورت می گیره سپس متغیر جدید با متغیر های قبلی ادقام می شوند. در صورت وجود ابهام در مورد عملکرد array_merge به اینجا نگاهی بی اندازید. کد:
function parse($tpl_file) ابتدا بررسی می کنه که آیا فایلی که آدرس داده شده موجو هست یا خیر. در صورتی که وجود نداشته باشه خطا صادر می شه . در خط بعد توسط تابع file_get_contents تمامی اطلاعات موجود در فایل مورد نظر بصورت استرینگ به متغیر tpl_content$ داده می شود. در صورت وجود ابهام در مورد عملکرد تابع file_get_contents به اینجا نگاهی بی اندازید. سپس توسط یک foreach ساده و با کمک تابع str_replace مقدار متغیر ها جایگذین نام متغیر ها می شوند. در صورت وجود ابهام در مورد عملکرد تابع str_replace به اینجا نگاهی بی اندازید. در صورت وجود ابهام در مورد عملکرد foreach به اینجا نگاهی بی اندازید کد:
function display($tpl_file) عملکرد فایل آموزش استفاده از کلاس ابتدا فایل کلاس رو صدا زده . سپس یک شی رو به کلاس نسبت داده . سپس یک آرایه رو در موتور تمپلت ذخیره کرده . با استفاده از تابع Display فایل رو نمایش داده . فکر نمی کنم موضوع مبهمی مونده باشه .. موفق باشید.
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#5
|
|||
|
|||
|
ساخت یک موتور جستو جو گر سریع و کارآمد یکی از دق دقه های یک برنامه نویسه ، من حتی قبل از اینکه یک پروژه رو شروع کنم روس سرچ فکر می کنم . .. امروز یک کلاس بسازیم که به سریع ترین وجه ممکن و به بهترین نحوه به ما جواب مورد نظرمون رو بده ، از همه مهم تر اصولی باشه و قابل ارتقاع و سفارشی باشه ..
class.search.php کد PHP:
کد PHP:
کد HTML:
<form method=post action=process.php> <table border=1> <tr> <td>Search by name, category or keywords</td> <td><input name=keyword></td> </tr> <td> </td> <td><input type=submit value=Submit></td> </table> </form> کد:
CREATE TABLE `bizmain` ( `biz_id` mediumint(8) unsigned NOT NULL auto_increment, `biz_name` varchar(100) default NULL, `biz_address` varchar(255) default NULL, `biz_phone` varchar(100) default NULL, `biz_email` varchar(100) default NULL, `biz_url` varchar(100) default NULL, `biz_cat` varchar(100) default NULL, PRIMARY KEY (`biz_id`) ) ; INSERT INTO `bizmain` (`biz_id`, `biz_name`, `biz_address`, `biz_phone`, `biz_email`, `biz_url`, `biz_cat`) VALUES (1, 'LocalFilipino.com', 'Makati, Philippines', '(632) 848-0886', 'info@localfilipino.com', 'http://www.localfilipino.com', 'Advertising'), (2, 'Liberty Realty', '2451 S. Buffalo Drive, Suite 145, Las Vegas, NV 89117', '(702) 248-8899', 'info@libertyrealty.com', 'http://www.libertyrealty.com', 'Real Estate, Realty'), (3, 'FRS Philippine Freight', '5960 Spring Mtn Rd, 3-D<br> Las Vegas, NV 89146', '(702) 253-7555', 'info@frsphilippines.com', 'http://www.frsphilippines.com', 'Freight, Cargo'); فایل پیوست 17848
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#6
|
|||
|
|||
|
سلام . بازم برگشتم که یکی دوتا مقاله توپ در مورد PHP براتون بگذارم. اما این تمام مقاله ها رو در مورد Pattern ها در PHP می نویسم. امید وارم مورد توجه شما دوستان عزیز قرار بگیرد.
امروز می خام MVC Pattern که یکی از مهم ترین نکات PHP هست رو براتون شرح بدم . MVC چیست ؟ Model View Control Model کلاس های مربوط به دیتابیس در این قسمت قرار می گیرند. View اطلاعات مربوط به صفحه خروجی در این قسمت قرار می گیرند. control اطلاعات اصلی در این قسمت قرار می گیرد . ![]() همونطور که در عکس می بینید ابتدا درخاست به control فرستاده می شود . ابتدا control در صورت نیاز اطلاعات در دیتا بیس را از Model می گیرد و در نهایت اطلاعات نهایی رو به View می فرستد. نحوه استفاده از Model و View و Control بسیار مهم هست . اگر شما یک MVC قوی داشته باشید . حتما یک framework قوی هم دارید. بله شما می توانید با استفاده از MVC یک فریم ورک مختص به خودتون داشته باشید . نیاز های خودتون را در یک فریم ورک جمع اوری کنید و براحتی پرتال بسازید. در مرحله بعد باهم یک MVC ساده رو می سازیم تا شما بیشتر با این Pattern آشنایی پیدا کنید. موفق و پیروز باشید.
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#7
|
|||
|
|||
|
سلام دوستان .
امروز نوبت ساختن یک mvc سادست. در ابتدا این تمام کد هارو می نویسم . شما سوال حاتون رو بپرسید . من و دیگر دوستان هر زمان که بتونیم جواب می دیم. index.php کد PHP:
کد PHP:
کد PHP:
کد PHP:
کد PHP:
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#8
|
|||
|
|||
|
بی شک یکی از مشکلات برنامه نویسان Valid کردن اطلاعات ورودی هست . معمولا هم ما با استفاده از IF ... ELSE کار خودمونو راه می ندازیم. اما بهتره از Strategy Pattern استفاده بشه . بی شک به شما خیلی بیشتر کمک می کنه . برنامه هم خانایی بیشتری پیدا می کنه .
بهتره بریم سر اصل مطلب . validator.php کد PHP:
کد PHP:
موفق باشید.
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#9
|
|||
|
|||
|
سلام دوستان. چند روزی در خدمت شما هستم ، امید وارم که تو این مدت بتونم باز هم به برنامه نویس های ایرانی کمک کنم. Propel یک Object Relational Mapping یا همون ORM هست. حتما پیش خودتون می گید که چه فایده ای داره که من از Propel استفاده کنم. باید بگم شما با استفاده از Propel که یک فریم ورک بسیارکار آمد برای برقراری ارتباط با دیتابیس هست تمام پایگاه داده خودتون رو بصورت کلاس در میارید و از همه مهم تر شما می تونید به پایگاه های داده MySQL, MS SQL Server, PostgreSQL, SQLite, Oracle وصل بشید. شما در Propel دیگه نیازی ندارید که برای ساخت database به phpmyadmin یا هر ابزار دیگه ای وصل بشید. اطلاعات دیتا بیس بصورت کد XML ذخیره می شن و پروپل خودش دیتابیس رو می سازه برای مثال کد HTML:
<database name="bookstore" defaultIdMethod="native"> <table name="book"> <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/> <column name="title" type="varchar" size="255" required="true" /> </table> <table name="author"> <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/> <column name="first_name" type="varchar" size="128" required="true"/> <column name="last_name" type="varchar" size="128" required="true"/> </table> </database> کد:
> propel-gen /path/to/bookstore کد:
bookstore/Book.php bookstore/BookPeer.php حالا نوبت به این می رسه که دستورات Create, Retrieve, Update, Delete رو اجرا کنیم جدول author رو در نظر بگیرید. برای Create کافیه که کد PHP:
کد:
INSERT INTO author (first_name, last_name) VALUES ('Jack', 'London');
کد:
$TableName->setFieldName("value")
کد:
$TableName->save() برای Retrieve کد PHP:
کد PHP:
کد PHP:
کد PHP:
به عنوان مثال کد PHP:
کد:
SELECT ... FROM author WHERE author.FIRST_NAME = 'Karl' AND author.LAST_NAME <> 'Marx'; حالا شاید شما خواستید که یک دستور SQL رو وارد کنید باید چیکار کنید ؟ کد PHP:
پیشنهاد می کنم حتما یک بار تجربه کنید ، احتمال زیادی می دم که شما هم مثل من مجذوب قدرت و امنیت این فریم ورک می شید. موفق و پیروز باشید
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
|
#10
|
|||
|
|||
|
سلام دوستان.
مدتی هست که من در حال خدمت هستم و متاسفانه از بحث برنامه نویسی به شدت دور شدم و اطلاعاتم از همون چیزی که دوسال پیش بود فقط کمی بیشتر شده. از تمامی دوستانی که در این مدت به پیشرفت آموزش کمک کردن ممونم خصوصا ناصر جان. بریم سر اصل مطلب راستیتش چند رو زی هست که در حال نوشتن CMS اختصاصی خودم هستم و به شدت غرق در برنامه نویسی OOP شدم. از اونجایی که دیدم بحث در رابطه با متود های جادویی هم تا جای خوبی رسیده گفتم خوبه اگه از ابتدا شروع به آموزش متود های جادویی کنیم. کلیه متود های جادویی PHP اینها هستن. کد PHP:
toString همونطور که مشخص هست متود toString برای گرفتن خروجی بصورت رشته یا همون متن هست. کارش سادست و فکر نمی کنم زیاد جای بحث داشته باشه. یه مثال می زنم. کد PHP:
کد:
Hello کد PHP:
کد PHP:
کد PHP:
متغیر foo$ رو مساوی با مقدار آرگمان foo$ این تابع قرار می ده. سعی کنید هم نام بودن توابع شما رو گول نزنه. توجه کنید که متغیر های داخل توابع اگر که هم نام با متغیر های کلاس باشند به هیج وجه با هم مرتبت نیستند. کد PHP:
کد PHP:
کد PHP:
کد PHP:
کد PHP:
امید وارم مورد استفاده قرار بگیره. موفق باشید.
__________________
یاد دوستان قدیم بخیر .. قبلا با اینکه ایران پی اچ پی جوملا خالی بود اما حال هوایی داشت .. امیر محمد سعید ، حمید رضا ، لین میس ، وحید ، و خیلیای دیگه ... وبلاگ من : www.hidensoft.blogspot.ir ای میل من : hidensoft [! @ !] gmail [! noghte !] com |
![]() |
| ابزارهای موضوع | |
| نحوه نمایش | |
|
|