حال ببینیم که چگونه میتوانیم از این آبجکت در برنامههایمان استفاده کنیم .
آبجکتها (Objects)
یک شیء در برنامهها نمونهای از یک کلاس است . دلیل این که یک نمونه
خوانده میشود این است که میتوانیم چندین شیء را ایجاد کنیم (یا
نمونههایی) که از یک کلاس باشند . همانطور که اتومبیلهای متعددی از یک
کلاس میتوانند در جادهها باشند برای ایجاد دو اتومبیل جدید ، تمام آن
چیزی که نیاز خواهیم داشت، اجرای این خطوط کد در برنامه ما است :
<? Php
$car1=new Car();
$car2=new Car();
$cars = array() ;
for($I=0;$I<10;$I++) {
$cars[$I]=new Car ();
}
$carHasStarted = $car1->start($myKey);
if ($carHasStarted) echo(“Car has started.”);
$car1->stop();
?>
در این قسمت به ساخت یک کلاس بسیار ساده می پردازیم.
بیایید کد یک کلاس Car را ایجاد کنیم . در این مثال شروع به تعریف کلاس خود
میکنیم . این کار را با استفاده از کلمه کلیدی Class در خط دوم میکنیم .
تمرین مهندسی نرمافزار خوبی است تا حرف اول تمامی نامهای کلاسها را برای
تشخیص آنها از متغیرها یا توابع با حروف بزرگ بنویسیم .
برنامهنویسان این کار را برای سالها در زبانهای گوناگون دیگر انجام
دادهاند . شناسایی Constructor در میان متدهای متنوع دیگر در کلاس ساده
است . همچنین عادت خوبی است که نام فایلهایتان را با نام کلاس نامگذاری
کنید . نظیر Car.php یک فایل تنها باید شامل یک کلاس باشد . اگر چند کلاس
دارید که به یکدیگر مرتبط هستند ، نظیر مجموعه کلاسهای انواع داده اصلی ،
باید آنها را درون یک زیرادایرکتوری تحت برنامه کاربردی اصلی خود قرار دهید
. اگر روی یک پروژه عظیم کار میکنید ، این تمرین ضروری است .
با بزرگتر شدن سیستمها ، ضروری
خواهد بود که از یک ساختار دایرکتوری درخت مانند ، برای نگهداری تمامی
کلاسهایی که در برنامه کاربردی وب شما بکار میروند ، استفاده کنید . شما
باید از include_once() یا require_once() برای اضافه کردن کلاسها به
فایلهای سورس خود در هنگام نیاز به آنها استفاده کنید .
<? Php
// Car.php
class Car
{
var $engine ;
var $requiredkey;
// Constructor
function Car()
{
$this-> requiredkey();
$this->engine= new Engine() ;
}
function start ($Key)
{
if ($key->equals($this->requiredKey)) {
$this->engine->start();
return true ;
}
return false ;
}
function stop ()
{
if ($this->engine->isRunning()) {
$this->engine->stop() ;
}
}
// … Several other methods such as moving and turning , and so on .
}
?>
PHP یک زبان برنامه نویسی با کد باز (Open-Source) است که اگرچه در ابتدا صرفا جهت برنامه نویسی تحت وب تولید شد، امروزه کارآییهای فراوانی پیدا کرده است. PHP یک زبان تحت سرور است (Server-Side) که طبیعتا برای اجرا نیاز به یک برنامه سرویس دهنده وب (Web Server) دارد.
کسانیکه مانند خود من قبلا با PERL کار کرده اند و حالا قصد دارند با PHP کار کنند، احتمالا مثل من در ابتدا به مشکلاتی بر خواهند خورد اما مطمئن باشید که PHP را سریع خواهید آموخت. آنچه به نظر من از خصوصیات خوب PHP بشمار می آید آن است که با وجود شباهت PHP با PERL، PHP پیچیدگیهای PERL را کمتر دارا می باشد. هرچند که قدرت PERL بر روی متن ها غیر قابل انکار است اما فراموش نکنید که PHP را صرفا برای محیط وب ساخته اند پس به اندازه کافی ( و حتی بیش از حد کافی ) امکانات کار با stringها را به شما ارائه خواهد کرد. فکر می کنم مقدمه چینی بیش از این هم حوصله شما را سر می برد و هم من را از موضوع دور می کند پس بر می گردیم به PHP.
برای شروع کار با PHP چه نیاز داریم؟
PHP برای اجرا نیاز به یک Web-Server دارد. دم دست ترین Web-Server برای شما احتمالا IIS خواهد بود، چرا که با استفاده از سی دی Windows قابل نصب است. نمی خواهم در این مقاله به شرح نصب IIS (یا وب سرورهای دیگر) بپردازم اما اگر نیاز به شرح آن دارید لطفا با من تماس بگیرید تا بطور مفصل آن را شرح دهم (آدرس پست الکترونیکی من در انتهای این مقاله آمده است). برای کسانیکه بقول یکی از دوستان من، "مرام Open Source" گلوی آنها را می فشارد شاید بهتر باشد از Apache به عنوان Web-Server استفاده کنند. (البته اگر از حق هم نگذریم Apache خیلی از IISبهتره!!!)
اگر Web-Server مورد علاقه شما به درستی بر روی دستگاه شما نصب شده است، حالا نیاز دارید که PHP را بر روی آن نصب کنید. برای بدست آوردن کد PHP از آدرس http://www.php.net/downloads.php استفاده کنید.
طبیعتا برای مشاهده نتیجه اجرای فایلهای PHP نیاز به یک مرورگر وب (Web Browser) دارید که مسلما رایجترین آن Internet Explorer است. برای درست کردن هر فایل PHP هم نیاز به یک ویرایشگر ساده متنی دارید (مثلا Word pad یا Note pad ) توجه کنید که از ویرایشگرهای حرفه ای مانند Microsoft Word نمی توانید استفاده کنید زیرا این ویرایشگرها از کاراکترهای پنهانی فراوانی استفاده می کنند که در هنگام ذخیره فایل متنی این کاراکترها هم ذخیره خواهند شد که باعث عدم اجرای دستورات PHP می شوند. با هم یک کد ساده PHP بنویسیم.
حالا می خواهیم اولین کد PHP را با هم درست کنیم. ویرایشگر متن را باز کنید (مثلا Word pad) و در آن چنین بنویسید:
حالا فایلتان را با عنوان 1st.php و در Web Server Local Folder ذخیره نمایید (اگر از IIS استفاده می کنید این فولدر در درایوی که Windows را در آن نصب کرده اید، با نام Inetpub وجود دارد. در داخل آن فولدر دیگری به نام wwwroot وجود دارد که باید فایلتان را در آن بریزید.)
حالا مرورگر وب خود را باز کنید (مثلا Internet Explorer) و در قسمت آدرس آن ابتدا //:http و سپس نام کامپیوتر خود و یا آدرس IP آن را تایپ نمایید (نام کامیوتر را در Control panel/System/Network Identification و IP را در صورتیکه تعیین کرده باشید در قسمت Command Prompt و با اجرای دستور ipconfig می توانید مشاهده کنید) و پس از یک Backslash (/) نام فایل (1st.php) را تایپ نموده و Enter را بزنید. بعنوان مثال نام کامپیوتر من siamak است. پس باید در قسمت آدرس مرورگرم خط زیر را بنویسم:
اگر همه چیز را تا اینجا درست انجام داده باشید، متن زیر در مرورگرتان پدیدار می شود:
همانطور که احتمالا متوجه شدید، باید کد PHP خود را در داخل تگ <?php ?> قرار دهید. البته می توانید از روشهای دیگر نیز استفاده کنید اما متداولترین روش همین است.
دستور ()echo در PHP وظیفه چاپ در خروجی را بر عهده دارد.
می توانستیم همین کد را با کمک تگهای HTML و بصورت زیر نیز بنویسیم:
من با توجه به اینکه منبع های آموزش PHP به صورت پیشرفته، البته فارسی کم است، تصمیم گرفتم که یکی پیشرفته ترین مباحث PHP یعنی شیء گرایی را آمورش دهم. از شما و مدیر فاروم هم انتظار همکاری دارم. این جلسه فقط تئوری است و در جلسه ی بعد به کار عملی می پردازیم.
کلاسها (Classes)
یک کلاس تعریف یا نمای یک نوع خاص داده است و کلاسها به عنوان روشی برای حالت دادن به تمام انواع متفاوت اشیاء و سیستم شما عمل میکنند . هنگامی که میخواهیم یک شیء جدید را تعریف کنیم ، ابتدا از کلمه کلیدی class برای تعریف آن ، پیش از استفاده از آن در اسکریپتهای PHP خود استفاده میکنیم . تفاوت واضح یک کلاس و یک شیء این است که کلاسها اشیایی را تعریف میکنند که در برنامههایمان به کار میبریم . پیش از آن که درباره روش ساخت یک کلاس صحبت کنیم ، میخواهیم شروع به تأمل کنید که یک کلاس نمایشی از یک ایده است . مهم است که هنگامی که کلاسهای خودتان را طراحی میکنید . آنها یک هدف را دنبال کنند و تمامی رفتاری را که از آن ایده انتظار میرفت را فراهم کنند .
یک کلاس در PHP حاوی سه کامپوننت اصلی است : members (اعضاء) که به آنها به عنوان داده یا صفت اشاره میشود) متدها ، و Consructor یک عضو members تکهای از داده است که شیء در بر دارد . اشیاء میتوانند هر تعداد عضو داشته باشند . برای مثال ، اگر قرار باشد اتومبیل را با استفاده از یک کلاس طراحی کنیم ، یک چرخ در حال دوران یا گیربکس باید به عنوان یک عضو از ماشین تعریف شوند .
متدها سرویسهایی هستند که شیء برای سرویس گیرندههایش فراهم میکند که از اعضا داخلی آن استفاده میکنند و آنها را دستکاری میکنند . برای مثال ، اگر قرار باشد اتومبیل را با استفاده از یک کلاس طراحی کنیم ، یک چرخ در حال دوران یا گیربکس باید به عنوان یک عضو از ماشین تعریف شوند .
متدها سرویسهایی هستند که شیء برای سرویس گیرندههایش فراهم میکند که از اعضا داخلی آن استفاده میکنند و آنها را دستکاری میکنند . برای مثال ، یک کلاس car میتواند یک متد را برای روشن کردن وسیله نقله و استفاده از چرخ در حال دوران در داخل آن فراهم کند .
یک Constructor متد خاصی است که شیء را درون وضعیت آماده آن معرفی می:ند . تنها یک Constructor برای یک شیء در PHP میتواند موجود باشد . در یک کلاس car ، افزودن بدنه ، موتور ، لاستیکها ، گیربکس ، صندلی و غیره بر روی car با هم متفاوتند . هنگامی که سرویس گیرندهها میخواهند از متدهای روی یک شیء استفاده کنند ، Constructor اطمینان میدهد که هر متد عملیات را با موفقیت به انجام خواهد رساند و نتیجه مورد انتظار را برخواهد گرداند . برای مثال ، برای روشن کردن رادیو درون اتومبیل شما ، باید یک رادیو نصب شده باشد . در این نمونه ، Constructor مسئول اطمینان بخشیدن از این موضوع است که رادیو پیش از استفاده نصب شده است.
به غیر از مقدار دهی شیء به یک وضعیت آماده معتبر ، تفاوت اساسی دیگر این است که یک Constructor هیچ مقدار برگشتی صریحی ندارد . تمامی Constructor ها یک متغیر جدیداً اختصاص یافته را برای استفاده در برنامه شما بر میگردانند .
در نتیجه ، برگرداندن یک مقدار در Constructor کلاس ، غیرقانونی است . درباره استفاده از اشیاء در برنامههای شما ، در بخش بعدی بیشتر صحبت خواهیم کرد . اطمینان یافتن از طراحی مناسب اشیاء و Constructor های آنها ، مسئلهای است که توسعه دهندگان زیادی اغلب با آن روبرو میشوند . هنگامی که کلاس برنامهنویسان را وادار میکند که اعضای شیء را پیش از استفاده از متدهای خود تنظیم کنند یا هنگامی که کلاس برنامهنویس را وادار میکند تا از ترتیب خاصی ، هنگام فراخوانی متدهای شیء پیروی کند ، کد گیج کننده و مبهمی را ایجاد میکند . از OPP به این منظور استفاده میکنیم که به طور کلی از بروز چنین مسئلهای جلوگیری کنیم . اگر کلاس مهندسی شده است تا از Constructor های خود برای معرفی بخشهای کلیدی کلاس استفاده نکند ، اشکال از طراحی ضعیف ناشی میگردد . دوباره در همان تله گرفتار نشوید .
کلاسی که خوب طراحی شده باشد برنامهنویسی ، اشکالزدایی و نگهداری زیادی را حذف میکند.
بیایید نگاهی به دستور زبان کلی برای Class در PHP بیندازیم ، که استفاده از این سه نوع کامپوننت را نشان میدهد :
class ClassName [extends ParentclassName]
{
var $member1;
var $member2;
…
var $memberN;
// Constructor
function Class Name()
{
}
function method1()
{
}
…
function method2()
{
}
function methodN()
{
}
}
چند لینک برای آموزش پی اچ پی php
http://forum.persiantools.com/showthread.php?s=cf63e5072fa2f0908038171dfea8db47&t=108481
برای کسب اطلاعات بیشتر در مورد دوره آموزش PHP به سایت آموزشگاه تحلیل داده مراجعه کنید.
برای دیدن سرفصل ها به ادامه مطلب مراجعه کنید.
ادامه مطلب ...