
آموزش برنامه نویسی PHP-جلسه نوزدهم
در php یک فرزند حق دارد از یک والد ارث بری کند ولی اگر نیاز داشته باشیم که از چند کلاس ارث بری داشته باشیم برای رفع این محدودیت از Traits استفاده میکنیم.
Table of contents [Show]
Traits
trait یک اسم داره که هر جا تو هر کلاسی لازم داشتیم که استفاده کنیم با use اسم trait رو استفاده میکنیم. می توانیم چند بار هم استفاده کنیم.
Syntax
<?php
trait TraitName {
// some code…
}
?>می توانیم چندتا traitهم تعریف کنیم و در کلاسها استفاده کنیم.
<?php
trait message1 {
public function msg1() {
echo “OOP is fun! “;
}
}
trait message2 {
public function msg2() {
echo “OOP reduces code duplication!”;
}
}
class Welcome {
use message1;
}
class Welcome2 {
use message1, message2;
}
$obj = new Welcome();
$obj->msg1();
echo “<br>”;
$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>پیشنهاد ویژه: آموزش رایگان PHP
Static Methode
برای اینکه بتوانیم فراخوانیهای درستی داشته باشیم باید توابع رو static تعریف کنیم.
Syntax
<?php
class ClassName {
public static function staticMethod() {
echo “Hello World!”;
}
}
?>برای استفاده از static باید اسم کلاس رو بنویسیم بعد :: قرار بدهیم و staticMethod() رو قرار بدهیم: ClassName::staticMethod();
در این حالت برای دسترسی نیازی به نمونه سازی نداریم و به طریق بالا دسترسی پیدا میکنیم.
<?php
class greeting {
public static function welcome() {
echo “Hello World!”;
}
}
// Call static method
greeting::welcome();
?>وقتی داخل متد استاتیک از constructor استفاده کنیم میتوانیم از کلمه self به جای استاتیک استفاده میکنیم.
<?php
class greeting {
public static function welcome() {
echo “Hello World!”;
}
public function __construct() {
self::welcome();
}
}
new greeting();
?>Static Properties
علاوه بر توابع می توانیم خصوصیات را نیز استاتیک تعریف کنیم و بدون ایجاد نمونه به آنها دسترسی پیدا کنیم .
Syntax
<?php
class ClassName {
public static $staticProp = “W3Schools”;
}
?>برای دسترسی به این خصوصیات استاتیک به صورت زیر عمل می کنیم:
ClassName::$staticProp;
<?php
class pi {
public static $value = 3.14159;
}
// Get static property
echo pi::$value;
?>PHP Namespaces
Namespacesها کمک میکنند ما از کتابخانه ها استفاده کنیم. namespace Html;
کتابخانه html شامل توابع و متدهایی است که داخل آن هست و می توانیم با namespace به آن دسترسی پیدا کنیم.
اگر namespace زیرشاخه یک namespace دیگهای باشه به شکل زیر بهش دسترسی پیدا میکنیم. namespace Code\Html;
برای استفاده از namespace می توانیم بدون فراخوانی کتابخانه به آن دسترسی پیدا کنیم. مثال زیر برای html است:
$table = new Html\Table()
$row = new Html\Row(); 
مریم گوهرزاد
مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین و توسعهدهنده بلاکچین | متخصص Solidity | توسعهدهنده وب Full-Stackمن یک توسعهدهنده علاقهمند به فناوریهای بلاکچین و وب ۳ هستم و در زمینه Solidity، توسعه قراردادهای هوشمند و ساخت برنامههای غیرمتمرکز (DApps) فعالیت میکنم. تمرکز من بر طراحی و پیادهسازی راهکارهایی است که در کنار بهرهگیری از فناوریهای نوین، عملکرد مناسب، امنیت و تجربه کاربری مطلوبی ارائه دهند.در مسیر حرفهای خود، تجربه کار با قراردادهای هوشمند و معماری راهکارهای مبتنی بر بلاکچین را به دست آوردهام و همواره تلاش میکنم دانش خود را با آخرین تغییرات و پیشرفتهای این حوزه بهروز نگه دارم. برای من، بلاکچین تنها یک فناوری جدید نیست؛ بلکه بستری برای ایجاد راهکارهای متفاوت و کاربردی در دنیای واقعی است.در کنار تخصص در حوزه بلاکچین، به عنوان یک توسعهدهنده وب Full-Stack نیز در طراحی و توسعه وبسایتها و برنامههای تحت وب فعالیت میکنم. تجربه کار در بخشهای Front-End و Back-End به من این امکان را داده است که پروژهها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژهای به کدنویسی تمیز، معماری مناسب، طراحی واکنشگرا، عملکرد مطلوب و تجربه کاربری روان دارم.همیشه به دنبال یادگیری، تجربه فناوریهای جدید و پیدا کردن راههای بهتر برای حل مسائل فنی هستم. از مواجهه با چالشهای پیچیده استقبال میکنم و معتقدم بهترین نتایج زمانی شکل میگیرند که دانش فنی، خلاقیت و همکاری مؤثر در کنار یکدیگر قرار بگیرند.اگر به دنبال همکاری در یک پروژه بلاکچینی، Web3 یا توسعه وب هستید، خوشحال میشوم با یکدیگر در ارتباط باشیم و ایدهها را به راهکارهای واقعی و قابل اجرا تبدیل کنیم.



