دوره آموزشی PHP

آموزشگاه تخصصی برنامه نویسی

دوره آموزشی PHP

آموزشگاه تخصصی برنامه نویسی

آبجکت‌ها

حال ببینیم که چگونه می‌توانیم از این آبجکت در برنامه‌هایمان استفاده کنیم .

آبجکت‌ها (Objects)
یک شیء در برنامه‌ها نمونه‌ای از یک کلاس است . دلیل این که یک نمونه خوانده می‌شود این است که می‌توانیم چندین شیء را ایجاد کنیم (یا نمونه‌هایی) که از یک کلاس باشند . همان‌طور که اتومبیل‌های متعددی از یک کلاس می‌توانند در جاده‌ها باشند برای ایجاد دو اتومبیل جدید ، تمام آن چیزی که نیاز خواهیم داشت، اجرای این خطوط کد در برنامه ما است :

PHP Code:
<? Php
$car1
=new Car(); $car2=new Car();
از کلمه کلیدی new برای ساخت نمونه جدیدی از کلاس استفاده می‌کنیم ، که ایجاد یک شیء جدید است . هنگامی که شیء یا یک نمونه کلاس را ایجاد می‌کنیم ، می‌گوییم که شیء برای اولین بار نمونه‌سازی (instantiate) شده است . مرجع شیء تازه نمونه‌سازی شده به ترتیب درون متغیرهای $car1 و $car2 قرار می‌گیرد . حال دو شیء داریم که برای استفاده در دسترس هستند . اگر می‌خواستیم ده اتومبیل ایجاد کنیم ، از آرایه‌ای از اشیاء مانند این استفاده می‌کردیم :

PHP Code:
$cars = array() ;
for(
$I=0;$I<10;$I++) { $cars[$I]=new Car ();
اگر بخواهیم یک اتومبیل را روشن کنیم ، متد start() آن را به صورت زیر فراخوانی می‌نماییم :

PHP Code:
$carHasStarted $car1->start($myKey);
if (
$carHasStarted) echo(“Car has started.); 
و اگر خواستیم اتومبیل را متوقف کنیم ، به صورت زیر عمل می‌نماییم :

PHP Code:
$car1->stop(); ?> 
متوجه شدید که این شیء دارای یک واسط ساده برای استفاده است . شما مجبور نیستید بدانید که واسط چگونه توسعه یافته است . به عنوان یک برنامه‌نویس ، تنها چیزی که باید بدانید ، سرویس‌هایی هستند که توسط یک شیء فراهم می‌گردند . این برنامه می‌توانست به خوبی یک اتومبیل فیزیکی را برای روشن شدن و متوقف شدن بسازد ، اما پیچیدگی این متدها و جزئیات اعضای آن به کلی ناشناخته هستند . این ایده ایجاد اشیاء قابل استفاده به آسانی ، ما را به بخش بعدی هدایت می :ند که Encapsulation (کپسوله سازی) نام دارد .

آموزش برنامه نویسی شیء گرا با PHP - قسمت دوم

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

با بزرگتر شدن سیستم‌ها ، ضروری خواهد بود که از یک ساختار دایرکتوری درخت مانند ، برای نگهداری تمامی کلاسهایی که در برنامه کاربردی وب شما بکار می‌روند ، استفاده کنید . شما باید از include_once() یا require_once() برای اضافه کردن کلاسها به فایل‌های سورس خود در هنگام نیاز به آنها استفاده کنید .


PHP Code:
<? Php // Car.php class Car  {
در یک مدل بی‌نهایت ساده از یک اتومبیل ، کلاس شامل موتور و نمایش کلیدی برای روشن کردن اتومبیل است . یک اتومبیل واقعی باید یک بدنه ، یک پدال گاز و یک ترمز و یک چرخ ، گیربکس و غیره داشته باشد ، اما این تنها برای نمایش است :
PHP Code:
var $engine ;
var 
$requiredkey
اتومبیل ما همچنین یک constructor دارد که موتور آن را تنظیم می‌کند و کلیدی دارد که اتومبیل را روشن می‌کند . اگر این عناصر اتومبیل را شناسایی نمی‌کردیم ، هر فراخوانی start() و stop() از کار می‌ایستاد و خطاهایی را بر می‌گرداند . چنانکه قبلاً ذکر کردیم ، وظیفه constructor شناسایی تمامی عناصر شیء ، جهت کسب اطمینان از امکان استفاده از تمامی سرویس‌ها در هنگام نیاز است .
توجه داشته‌باشید که اگر می‌خواهید به یک عضو کلاس رجوع کنید ، باید یک کلمه کلیدی $this-> را در ابتدای نام عضو قرار دهید . این ارتباط از جاوا یا C++ متفاوت است که در آنها اختیاری است . این بدلیل کارایی ضعیف PHP ، سه سطح namespace وجود دارند که متغیرها در آن مرتب می‌شوند . (یک namespace اصولاً مجموعه‌ای از نام متغیرها است).
پایین‌ترین سط ح namespace برای متغیرهای محلی درون توابع یا متدها بکار می‌رود . هر متغیر ایجاد شده در این سطح به namespace محلی اضافه شده است . namespace بعدی حاوی تمامی اعضای یک شیء است . بالاترین سطح namespace برای متغیرهای عمومی بکار می‌رود . کلمهه کلیدی $this به PHP می‌گوید که متغیر را از namespace شیء می‌خواهید (سطح وسط) . اگر فراموش کنید که کلمه کلیدی $this را لحاظ کنید ، یک متغیر کاملاً جدید را در namespace محلی ایجاد خواهید کرد . از آنجایی که این به یک متغیر کاملاً متفاوت از آنچه که قرار بود رجوع می‌کند ، چند خطای منطقی که اشکال زدایی آنها دشوار است را خواهید داشت .

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

متد start() اتومبیل را با استفاده از key برای کاربر روشن خواهد کرد . اگر key صحیح باشد ، آبجکت اتومبیل به موتور خواهد گفت تا شروع به کار کند :

PHP Code:
// Constructor function Car()
{
$this-> requiredkey(); $this->engine= new Engine() ;
}
function 
start ($Key)
{
if (
$key->equals($this->requiredKey)) { $this->engine->start();
return 
true ;
}
return 
false ;
متد stop() ساختاری مشابه متد start() دارد . این متد بررسی می‌کند تا ببیند آیا موتور روشن است یا خیر ، و اگر روشن باشد ، اتومبیل را متوقف خواهد کرد . توجه کنید که چک کردن موتور برای اطمینان از روشن بودن آن می‌توانست در تابع stop() آبجکت engine صورت گیرد ، تا ما راحتی از فکر کردن درباره آن باز دارد . از خودتان سؤال خواهید کرد که منطق(logic) در کجا بکار خواهد رفت . این ، پایه‌های توسعه معماری خوب و موفق است :
PHP Code:
function stop ()
{
if (
$this->engine->isRunning()) { $this->engine->stop() ;
}
}
// … Several other methods such as moving and turning , and so on . } ?> 

PHP چیست؟

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) و در آن چنین بنویسید:

<?php
echo (“Hi! I am the first PHP script you have made!”);
?>


حالا فایلتان را با عنوان 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 و بصورت زیر نیز بنویسیم:

<html>
<body>
<?php
echo ("Hi! I am the first PHP script you have made!");
?>
</body>
</html>

آموزش برنامه نویسی شیء گرا با PHP

من با توجه به اینکه منبع های آموزش 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 بیندازیم ، که استفاده از این سه نوع کامپوننت را نشان می‌دهد :

PHP Code:
class ClassName [extends  ParentclassName]
{
        var 
$member1
        var 
$member2;
        
        

        
var $memberN;
        
//  Constructor
        
function  Class Name()
        {
        }
        function  
method1()
        {
        }

        
function  method2()
        {
        }
        function  
methodN()
        {
        } 
همان‌گونه که می‌بینید ، یک کلاس چیزی نیست جز یک مجموعه از اعضای تعریف شده (متغیرها) و متدها (توابع) . اعضا می‌توانند یا انواع داده اولیه نظیر integer ها و رشته‌ها یا انواع پیچیده‌تری نظیر آرایه‌ها یا اشیاء دیگر باشند . از آنجایی که PHP از شما انتظار ندارد که انواع را تعریف کنید ، فقط می‌توانید متغیرهایتان را در بالای کلاس ، به صورتی که در بالا نشان داده شد ، نام ببرید .
با PHP می‌توانید متغیرهایی را در تابع خود ایجاد کنید ؛ آنها به همان خوبی که مورد انتظارتان است کا رخواهند کرد . اگرچه ، تمرین خوبی نخواهد بود اگر این کار را انجام دهید . این به آن خاطر است که وقتی برنامه‌نویسان دیگر به کلاس شما نگاه می‌کنند ، فوراً تمامی اعضای آن را پیش از نگاه کردن به پیاده‌سازی توابع بشناسند .
متدها به سادگی تمام سرویس‌هایی هستند که این کلاس تضمین می‌کند تا برای سرویس گیرنده‌هایش فراهم کند . سرویس گیرنده‌ها می‌توانند برنامه‌های دیگر ، پروژه‌های دیگر و غیره باشند‌.

کارگاه عملی مدیریت، ساخت و طراحی صفحات وب همراه با مدیریت سرور

تاریخ شروع
1389/07/29
تاریخ پایان
1389/10/30
زمان برگزاری
(یک روز در هفته) پنجشنبه ها از ساعت 16:00 تا 19:00
پیش نیاز
آشنایی به نرم افزار Photo Shop، شناخت نسبی از tagهای HTML، کار با اینترنت
نام استاد
مجید علوی زاده
هزینه دوره
2.300.000 ریال


ثبت نام کارگاه عملی مدیریت

دوره آموزشی PHP

پیش نیاز ها
آشنایی با طراحی وب سایت HTML، آشنایی نسبی با JavaScript

نام مدرس
مهندس علوی زاده

هزینه دوره
2.500.000 ریال

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

اهداف دوره

        * هدف از ساخت سایت دینامیک را به خوبی توضیح دهند.
        * تفاوت های بنیادی سایت های دینامیک را با استاتیک بدانند.
        * تفاوت زبان های مختلف توسعه سایت های دینامیک با PHP را توضیح دهند.
        * نحوه نصب و راه اندازی نرم افزارهای مورد نیاز برای تولید وب سایت با PHP را توضیح دهد.
        * ساختارهای تصمیم گیری و BLOCK را در PHP یاد بگیرد.
        * ساخت توابع فراخوانی تابع را بیاموزند.
        * ساخت object و class را در زبان PHP بیاموزند.
        * آرایه ها را درک کنند و آرایه های چند بعدی را در ذهن تجسم کنند.
        * با بانک اطلاعاتی رابطه ای MySQL کار کنند.
        * مدیریت بانک MySQL، از قبیل DB، backup، restore، و ساخت عناصر داخل بانک را بیاموزند.
        * ارتباط کاملی بین PHP و بانک اطلاعاتی MySQL برقرار نمایند.
        * فرم ها را بسازند و به بانک متصل کنند.
        * با session، cookie، و access controlها کار کنند.
        * سایت خود را از هک شدن محافظت کنند.
        * با خطاهای ناخواسته زمان اجرا مقابله کنند.
        * با استفاده از پروتکل SMTP، از طریق PHP، ای میل ارسال کنند.

برای کسب اطلاعات بیشتر در مورد دوره آموزش PHP به سایت آموزشگاه تحلیل داده مراجعه کنید.

برای دیدن سرفصل ها به ادامه مطلب مراجعه کنید.

ادامه مطلب ...