Single Responsibility Principle(SRP)
Deir an prionsabal seo gur cheart go mbeadh freagracht amháin ar gach rang. Leagtar béim ann gur chóir go ndéanfadh rang feidhm shonrach amháin agus gan an iomarca cúiseanna a bheith acu le hathrú.
Sampla: Faisnéis úsáideora a bhainistiú agus fógraí ríomhphoist a sheoladh.
class UserManager {
public function createUser($userData) {
// Logic for creating a user
}
}
class EmailService {
public function sendEmail($emailData) {
// Logic for sending an email
}
}
Open/Closed Principle(OCP)
Spreagann an prionsabal seo feidhmiúlacht a leathnú trí chód nua a chur leis seachas an cód atá ann cheana a mhodhnú.
Sampla: Láimhseáil modhanna íocaíochta éagsúla in iarratas ríomhthráchtála.
interface PaymentProcessor {
public function processPayment();
}
class CreditCardPaymentProcessor implements PaymentProcessor {
public function processPayment() {
// Logic for processing credit card payment
}
}
class PayPalPaymentProcessor implements PaymentProcessor {
public function processPayment() {
// Logic for processing PayPal payment
}
}
Liskov Substitution Principle(LSP)
Dearbhaíonn an prionsabal seo gur cheart réada d’aicme díorthaithe a chur in ionad rudaí den bhunaicme gan cur isteach ar chruinneas an chláir.
Sampla: Cruthanna geoiméadracha a bhainistiú.
abstract class Shape {
abstract public function area();
}
class Rectangle extends Shape {
public function area() {
return $this->width * $this->height;
}
}
class Square extends Shape {
public function area() {
return $this->side * $this->side;
}
}
Interface Segregation Principle(ISP)
Moltar leis an bprionsabal seo comhéadain a bhriseadh ina gcomhéadain níos lú chun iallach a chur ar ranganna modhanna a chur i bhfeidhm nach bhfuil gá leo.
Sampla: Comhéadain chun sonraí a nuashonrú agus a thaispeáint.
interface UpdateableFeature {
public function updateFeature();
}
interface DisplayableFeature {
public function displayFeature();
}
Dependency Inversion Principle(DIP)
Molann an prionsabal seo instealladh spleáchais a úsáid chun spleáchais a bhainistiú.
Sampla: Instealladh spleáchais a úsáid chun spleáchais a bhainistiú.
class OrderProcessor {
private $dbConnection;
private $emailService;
public function __construct(DatabaseConnection $dbConnection, EmailService $emailService) {
$this->dbConnection = $dbConnection;
$this->emailService = $emailService;
}
}
Cuimhnigh gur SOLID chóir prionsabail a chur i bhfeidhm i PHP a dhéanamh go solúbtha bunaithe ar shainchuspóir do thionscadail agus ar do thuiscint ar SOLID PHP.