آشنایی با مفهوم کلاس در PHP
کلاس در PHP
بعید است کسی به سراغ برنامهنویسی وب برود و اسم PHP را نشنیده باشد. این زبان یکی از بهترین زبانها برای اسکریپت کردن و نوشتن کدهای سمت سرور است که در حال حاضر استفادههای گستردهای در سراسر جهان دارد. یکی از مهمترین مزیتهای این زبان، پشتیبانی از برنامهنویسی شیگرا برای حل مسائل است. در ادامه در مورد کلاس در PHP بیشتر صحبت خواهیم کرد.
این برنامهنویسی به توسعهدهندگان کمک میکند سختترین مسائل را به بخشهای کوچک تقسیم کرده و بهراحتی حل کنند. اگر به دنبال آموزش رایگان php هستید در این مطلب با ما همراه باشید. تمرکز ما در این مقاله بر آموزش کلاس در PHP قرار دارد. برای دسترسی به آموزشهای بیشتر و پیشرفتهتر میتوانید از دیگر بخشهای سایت دیدن فرمایید.
مختصری درباره PHP
PHP یک زبان برنامهنویسی متنباز و رایگان است که برای برنامهنویسی سمت سرور مورد استفاده قرار میگیرد. اولین نسخه PHP با نام PHP/FI در سال ۱۹۹۴ توسط رازموز لردورف ساخته شد. این نسخه چیزی نبود جز کدهای باینری یک رابط عمومی درگاهی (CGI) که با استفاده از زبان برنامهنویسی C نوشته شده بود.
لردورف در ادامه برای نام بردن از این پروژه در رزومه خود از Personal Home Page Tools (ابزار طراحی صفحه خانگی وب) استفاده کرد که مخفف آن PHP Tools بود. این PHP Tools ایده جذابی بهنظر میرسید اما همچنان با کمبود امکانات برای تبدیل شدن به یک زبان برنامهنویسی وب روبرو بود. امکاناتی مثل تعامل با پایگاه داده برای برنامهنویسی سمت سرور مورد نیاز بودند.
رازموز لردورف در طول زمان دست به اصلاح این نواقص زد و سرانجام در سپتامبر ۱۹۹۵ سورس کد PHP Tools را برای برنامهنویسان علاقهمند منتشر نمود. هدف او از این کار حل مشکلات موجود در کد با استفاده از تجربه برنامهنویسان سراسر دنیا بود. در ادامه بخش Tools از PHP جدا شد و بهعنوان FI یا Forms Interpreter در کنار PHP قرار گرفت.
کاربردهای PHP
زبان برنامه نویسی PHP معمولا برای این موارد کاربرد دارد:
- تولید محتوای پویا برای صفحات وب
- ساخت، باز کردن، خواندن، نوشتن، پاک کردن و بستن فایلها روی سرور
- جمعآوری دادهها
- ارسال و دریافت کوکی
- اضافه کردن، پاک کردن و ویرایش دادهها در دیتابیس
- کنترل سطح دسترسی کاربران و اعضا
- رمزنگاری دادهها
ویژگیها و ومزایای استفاده از PHP
این زبان برنامهنویسی در حال حاضر جزو ده زبان برتر دنیا از لحاظ کاربرد و درآمد قرار دارد. دلایل این محبوبیت گسترده را میتوان در موارد زیر جستجو کرد:
- PHP متن باز است.
- PHP روی تمام پلتفرمهای موجود اجرا میشود.
- PHP با انواع سرورهایی که امروزه مورد استفاده قرار میگیرند سازگاری دارد.
- PHP از اکثر پایگاهدادههای موجود پشتیبانی میکند.
- PHP رایگان و نامحدود است.
- PHP یادگیری سادهای دارد.
- بهینه بودن PHP در اجرا بسیار بالا است.
برنامهنویسی شیگرا
زمانی که برنامهنویسی بهعنوان یک مفهوم وارد علوم کامپیوتر شد، تنها سبک موجود در آن «برنامهنویسی رویهای» (بالابهپایین) بود. در این روش مسئله مورد نظر با یک سلسله کد دستوری حل میشود. این راهکار در آن زمان پاسخگوی تمام نیازهای موجود بود؛ اما وقتی دنیای برنامهنویسی گستردهتر شد و مسائل مطرح شده سختتر شدند، دیگر آن روش قدیمی قابل استفاده نبود.
برای درک تفاوت مسائل قدیمی برنامهنویسی و مسائل جدید، کافی است یکی از نرمافزارها و سایتهای امروزی را با نرمافزارها و سایتهای ۲۰ سال پیش مقایسه کنید. اجزای زیاد این صفحات و پیچیدگیهای ساختاری موجود در آنها همگی با شیگرایی ممکن شدهاند.
برنامهنویسی شیگرا یعنی قرار دادن وظایف کلی سیستم بر عهده مجموعهای از اشیا. هر شی از دو بخش تشکیل میشود. بخش اول اطلاعاتی در مورد ویژگیهای آن شی و بخش دوم متدهایی که رفتار مورد انتظار را تعیین میکنند. هر شی در سیستم کلی بخشی از وظیفه را بهعهده دارد که اطلاعات و رفتارهای موجود در آن برای انجام درست این وظایف قرار داده شدهاند.
شیگرایی (OOP) تنها شامل یک نوع نوشتار تازه نیست؛ بلکه اشاره به یک نگرش تازه در برنامهنویسی دارد. در دید کلاسیک و برنامهنویسی رویهای، حل مسئله از طریق یک سری دستور انجام میشد؛ درحالیکه در برنامهنویسی شیگرا این اتفاق از طریق کار با دادهها میافتد.
اگر بخواهیم شی گرایی را با یک مثال در دنیای واقعی توضیح دهیم، میتوان به تقسیم کار در یک سازمان اشاره کرد. هر واحد سازمان مثل یک شی، اطلاعات و رفتارهای خاص خود را دارد و نتیجه کار تمام واحدها، حل مسئله کلی (رسیدن به اهداف سازمان) است.
مزایای شی گرایی
شیگرایی بههیچوجه باعث کوتاهتر شدن کد نخواهد شد. مزیت اصلی شیگرایی در حلِ بهینهتر مسائل پیچیده با تقسیم آنها به چند بخش (روش تقسیم و غلبه) است. شما در برنامهنویسی رویهای با یک مسئله بزرگ روبرو هستید در حالی که شیگرایی آن مسئله بزرگ را به چندین مسئله کوچک تقسیم میکند. بدیهی است که حل چندین مسئله کوچک از یک مسئله بزرگ راحتتر خواهد بود. مزایای کلی برنامهنویسی شی گرا عبارت است از:
- سرعت و راحتی در اجرا
- ساختار شفاف برنامهها و در نتیجه راحتتر بودن پیدا کردن اشکالات و ویرایش کد
- جلوگیری از تکرار دستورات
- کاهش زمان توسعه برنامه با امکان استفاده چندباره از یک شی
مفاهیم پایهای شی گرایی در PHP
برای یادگیری شی گرایی در PHP ابتدا لازم است مفاهیمی مثل شی و کلاس در PHP را بشناسیم. مفاهیم پایهای شیگرایی در PHP عبارتند از:
کلاس
کلاس یک نوع داده (data type) است که توسط برنامهنویس تعریف میشود. در کلاس دادهها و توابع بهصورت محلی (Local) وجود دارند.
شیء
یک مثال از نوع دادهی تعریف شده توسط برنامهنویس یا همان کلاس است. برای مثال موز، نارنگی، سیب و… هرکدام یک شیء از کلاس میوهها هستند.
عضو متغیر
به متغیرهایی که درون یک کلاس تعریف میشوند، عضو متغیر (Member Variable) گفته میشود. برای دسترسی به این عضوها از خارج کلاس تنها میتوان از طریق توابع عضو آن کلاس اقدام کرد.
تابع عضو
توابعی تعریف شده درون کلاس که در بیرون کلاس برای دسترسی به متغیرهای درون آن مورد استفاده قرار میگیرند.
ارثبری
گاهی یک کلاس توابع و متغیرهای تعریف شده در کلاسی دیگر را به ارث میبرد. در این حالت ارثبرنده بهعنوان کلاس «فرزند» و ارثدهنده بهعنوان کلاس «والد» شناخته میشود.
مقاله پییشنهادی : وضعیت بازار کار php برای درآمدزایی چگونه است؟
چندریختی
این ویژگی بهاینمعنا است که تابع میتواند با اهداف مختلفی مورد استفاده قرار گیرد. برای مثال نام تابع ثابت مانده اما تعداد مختلفی آرگومان میگیرد و وظایف متفاوتی را انجام میدهد.
Overloading
نوعی از چندریختی که در آن همه یا بعضی از عملگرها پیادهسازیهای مختلفی با توجه به نوع آرگومان دارند.
انتزاع داده
هر گونه نمایشی از دادهها که جزییات پیادهسازی در آن مخفی باشد را انتزاع داده میگویند.
Encapsulation
این مفهوم بهمعنای کپسوله کردن تمام اعضا و دادههای کلاس برای شکلگیری یک شی از آن است.
تابع سازنده
هر زمان که یک شی از یک کلاس شروع به شکلگیری کند، تابع سازنده کلاس صدا زده میشود.
تابع مخرب
هر زمان که کار با شی تمام شده باشد و بخواهیم آن را پاک یا از دسترس خارج کنیم، این شی را صدا میزنیم.
تعریف کلاس در PHP
فرم کلی تعریف یک کلاس در PHP به این شکل است:
<?php
class phpClass {
var $var1;
var $var2 = "constant string";
function myfunc ($arg1, $arg2) {
[..]
}
[..]
}
?>
در ادامه با ذکر مثالی از تعریف کلاس برای کتابهای موجود در یک فروشگاه، مبحث کلاس در PHP را برای شما روشنتر خواهیم کرد:
<?php
class Books {
/* Member variables */
var $price;
var $title;
/* Member functions */
function setPrice($par){
$this->price = $par;
}
function getPrice(){
echo $this->price ."<br/>";
}
function setTitle($par){
$this->title = $par;
}
function getTitle(){
echo $this->title ." <br/>";
}
}
?>
ساخت شی از کلاس در PHP
زمانی که کلاس را ساختید، شما یک «نوع داده» مخصوص به خودتان دارید که میتوانید بیشمار مصداق (شی) از آن بسازید. در همین مثال کتاب فرض کنید قصد داریم سه دسته «فیزیک»، «ریاضی» و «شیمی» را برای کتابهای فروشگاهمان تعریف کنیم.
$physics = new Books;
$maths = new Books;
$chemistry = new Books;
صدا زدن توابع
پس از ساختن شیء یا اشیاء مورد نظر، برای کار با آنها از توابع عضو کلاس استفاده میکنیم. توابع کلاس برای کار با متغیرهای کلاس یا مقداردهی آنها مورد استفاده قرار میگیرند. باز هم به مثال کتاب برمیگردیم و این بار میخواهیم به هر دسته (شیء) ، یک کتاب با نام و قیمت مشخص اضافه کنیم.
$physics->setTitle( "Physics for High School" );
$chemistry->setTitle( "Advanced Chemistry" );
$maths->setTitle( "Algebra" );
$physics->setPrice( 10 );
$chemistry->setPrice( 15 );
$maths->setPrice( 7 );
و در ادامه:
$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();
$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();
توابع سازنده و مخرب کلاس در PHP
توابع سازنده نوع خاصی از توابع هستند که بهصورتخودکار در زمان ساخته شدن شیء صدا زده میشوند. از این قابلیت میتوان برای مقداردهی اولیه متغیرهای کلاس در زمان ساخت شیء استفاده کرد. در PHP این تابع بهصورت ()Construct__ مورد استفاده قرار میگیرد و با آن میتوان برای پاس دادن آرگومان به تعداد دلخواه استفاده کرد. در مثال کتابفروشی فرض کنید میخواهیم در همان لحظه وارد کردن کتاب جدید، نام و قیمت آن را هم وارد کنیم:
function __construct( $par1, $par2 ) {
$this->title = $par1;
$this->price = $par2;
}
حالا دیگر مثل بخش قبل لازم نیست ابتدا شیء را ساخته و در یک بخش جدا با set آن را مقداردهی کنیم. ساخت اشیا به این صورت خواهد بود:
$physics = new Books( "Physics for High School", 10 );
$maths = new Books ( "Advanced Chemistry", 15 );
$chemistry = new Books ("Algebra", 7 );
/* Get those set values */
$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();
$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();
توابع مخرب کلاس و تمام اشیای مربوط به آن را از بین برده و حافظه را آزاد میکنند.
نتیجه گیری پایانی
زبان PHP یک زبان متنباز و سریع برای ساخت صفحات وب پویا است. با استفاده از این زبان میتوانید کدهای سمت سرور باکیفیت و قدرتمندی بنویسید. شیگرایی در این زبان (با توجه به الگوریتمهای پیچیده در برنامهنویسی سمت سرور) نقش ویژهای دارد. در این مطلب سعی کردیم علاوه بر معرفی زبان PHP و مزیتهای شاخص آن، شما را با جزییات و مفاهیم شیگرایی در PHP آشنا کنیم.
اگر علاقهمند به یادگیری فراتر از آموزش رایگان PHP هستید میتوانید از دورههای آموزش PHP مکتبخونه استفاده کنید. در این دورهها آموزش کلاس در PHP و مباحث بیشتر با آوردن مثالها، تمرینها و پروژههای کاربردی، با کیفیت بالایی به شما آموزش داده میشوند.