PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش شئ گرایی پیشرفته در php قسمت اول



EM4D-M
2012-03-06, 10:01
بسم الله الرحمن الرحیم

ضمن سلام خدمت دوستان گرامی ،
چند روزی است درگیر نوشتن و تکمیل مقاله در مورد تکنیک ها و آموزش پیشرفته OOP هستم .
لطفا در نظر سنجی شرکت کنید و بگویید مایل به ادامه این آموزش ها هستید یا خیر .

صمیمانه از شما سپاسگذارم .

شروع آموزش :

نوسازی مدل شئی (Object Model) و بهبود پشتیبانی تکنیک ها و متدلوژی های شئ گرای استاندارد را میتوان به عنوان بزرگترین و اساسی ترین تغییر در PHP 5 تلقی کرد . تمرکز روی برنامه نویسی شئ گرا (OOP) یا الگو های طراحی هدف این آموزش نیستند . کتاب های خوبی در این زمینه ها نوشته شده اند که میتوانید از آنها استفاده کنید . در عوض ، در این آموزش تنها مروری بر این موارد خواهیم داشت .
من در مورد برنامه نویسی شئ گرا در PHP نظر خوبی ندارم . به دلایل متعدد ، استفاده از OOP در PHP مثل این است که بری کشتن پشه از چکش استفاده کنید . سطح انتزاعی (Abstraction) که در این روش ارایه میشود برای انجام امور ساده ضروری نیست . با این حال ، هر چه سیستم پیچیده تر شود استفاده از OOP منطقی تر جلوه میکند .و برخی سیستم هایی که من روی آن ها کار کرده ام واقعا از طراحی مدولار (Modular) و تکنیک های OOP بهره خوبی گرفته اند .

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

برنامه نویسی شئ گرا پیشرفت محسوسی را نسبت به برنامه نویسی ساختار یافته ( یا پروسه ای ) (Structured Programming) به وجود آورده است . در برنامه نویسی ساختار یافته که روشی سنتی برنامه نویسی در PHP است ، داده ها در متغیر ها ذخیره شده و به تابع ها فرستاده میشوند . سپس تابع ها روی داده ها پردازش شده ، تغییر میابند یا داده های جدید ایجاد می کنند . یک برنامه پروسه ای به طور سنتی عبارت است از فهرستی از دستور العمل ها که به ترتیب اجرا شده و در این راه از دستور های کنترلی ، تابع ها و نظایر آن ها استفاده میکنند .

مثال بعدی نمونه ای از کد پروسه ای هست :



<?php
function hello($name)
{
return "Hello $name!\n";
}
function goodbye($name)
{
return "Goodbye $name!\n";
}
function age($birthday)
{
$ts = strtotime($birthday);
if($ts==-1) {
return "Unknown";
}
else {
$diff = time()-$ts;
return floor($diff/(24*60*60*365));

}
}
$name= " Emad";
$bday = "10 Oct 1990";
echo hello($name);
echo "You Are ".age($bday)." years old.\n";
echo goodbye($name);
?>


خروجی : Hello Emad! You Are 21 years old. Goodbye Emad!

معرفی برنامه نویسی شئ گرا

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

هر شئ توسط کلاس که به آن تعلق دارد ، تعریف میشود . یک کلاس ، مشخصه ها و متد های شئ را تعریف میکند . با ایجاد یک نمونه (Instance) از یک کلاس میتوان یک شئ جدید ساخت . وقتی شیئ جدید با عمل نمونه سازی ساخته شود ، مقدار مشخصه های آن تعیین شده و متد سازنده (Constructor) آن را فراخوانی می شود . متد سازنده تابعی است که عملیات تنظیم اولیه شئی را انجام میدهد . نام متد سازنده در PHP 5 باید


__constructor()

باشد تا مترجم بتواند آن را شناسایی کند . در مثال زیر یک کلاس ساده به نام User تعریف میشود سپس یک نمونه از آن ساخته شده و این نمونه ، دو متد مربوط به خود را فراخوانی میکند :



<?php


// Example 2
// Amir Emad Mahmodpor - Mahmodpor.Com


class User{
public $name;
public $birthday;
public function __construct($name,$birthday)
{
$this->name = $name;
$this->birthday = $birthday;
}
public function hello()
{
return "Hello $this->name!\n";
}
public function goodbye()
{
return "Goodbye $this->name!\n";
}
public function age()
{
$ts=strtotime($this->birthday);
if($ts===-1) {
return "Unknown";
}
else {
$diff = time()-$ts;
return floor($diff/(24*60*60*365));
}
}
}


$user = new User('Emad','10 Oct 1990');
echo $user->hello();
echo "You Are ".$user->age()." Years old.\n";
echo $user->goodbye();
?>


خروجی : Hello Emad! You Are 21 Years old. Goodbye Emad!

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

http://mahmodpor.com/post-20.html

موفق و پیروز باشید
امیر عماد محمودپور

- پست قبلی در ساعت 23:53 ایجاد و آخرین به روز رسانی توسط پست زیر در ساعت 01:46 انجام شده است :

یا اگر بحثی یا قسمت خاصی از php مد نظرتون هست عرض کنید

- پست قبلی در ساعت 01:46 ایجاد و آخرین به روز رسانی توسط پست زیر در ساعت 10:01 انجام شده است :

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

ولی توجه کنید مباحث سطحی در اینترنت فراوان است ولی آموزش های تخصصی در ایران ، نه کتابی دارند و نه ایبوکی

S.A.E.I.D
2012-03-06, 11:19
سلام
اگه میشه بیشتر مباحث تخصصی تری بگذارید
و اگه میتونید مطالبی در مورد فریم ورک ها هم قرار بدید
باز هم ممنون و تشکر

EM4D-M
2012-03-06, 11:25
خواهش میکنم ، چشم .

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