Single Responsibility Principle(SRP)
ஒவ்வொரு வகுப்பினருக்கும் ஒரே பொறுப்பு இருக்க வேண்டும் என்று இந்த கொள்கை கூறுகிறது. ஒரு வகுப்பு ஒரு குறிப்பிட்ட செயல்பாட்டைச் செய்ய வேண்டும் மற்றும் மாற்றுவதற்கு பல காரணங்கள் இல்லை என்பதை இது வலியுறுத்துகிறது.
எடுத்துக்காட்டு: பயனர் தகவலை நிர்வகித்தல் மற்றும் மின்னஞ்சல் அறிவிப்புகளை அனுப்புதல்.
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)
ஏற்கனவே உள்ள குறியீட்டை மாற்றுவதற்குப் பதிலாக புதிய குறியீட்டைச் சேர்ப்பதன் மூலம் செயல்பாட்டை நீட்டிக்க இந்தக் கொள்கை ஊக்குவிக்கிறது.
எடுத்துக்காட்டு: ஈ-காமர்ஸ் பயன்பாட்டில் வெவ்வேறு கட்டண முறைகளைக் கையாளுதல்.
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)
நிரலின் சரியான தன்மையைப் பாதிக்காமல், அடிப்படை வகுப்பின் பொருள்களுக்குப் பெறப்பட்ட வகுப்பின் பொருள்கள் மாற்றாக இருக்க வேண்டும் என்று இந்தக் கொள்கை வலியுறுத்துகிறது.
எடுத்துக்காட்டு: வடிவியல் வடிவங்களை நிர்வகித்தல்.
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)
வகுப்புகளுக்குத் தேவையில்லாத முறைகளைச் செயல்படுத்த கட்டாயப்படுத்துவதைத் தவிர்க்க, இடைமுகங்களைச் சிறியதாக உடைக்க இந்தக் கொள்கை அறிவுறுத்துகிறது.
எடுத்துக்காட்டு: தரவைப் புதுப்பிப்பதற்கும் காட்சிப்படுத்துவதற்கும் இடைமுகங்கள்.
interface UpdateableFeature {
public function updateFeature();
}
interface DisplayableFeature {
public function displayFeature();
}
Dependency Inversion Principle(DIP)
சார்புகளை நிர்வகிக்க சார்பு ஊசியைப் பயன்படுத்துவதை இந்தக் கொள்கை பரிந்துரைக்கிறது.
எடுத்துக்காட்டு: சார்புகளை நிர்வகிக்க சார்பு ஊசியைப் பயன்படுத்துதல்.
class OrderProcessor {
private $dbConnection;
private $emailService;
public function __construct(DatabaseConnection $dbConnection, EmailService $emailService) {
$this->dbConnection = $dbConnection;
$this->emailService = $emailService;
}
}
PHP இல் கொள்கைகளைப் பயன்படுத்துவது உங்கள் திட்டத்தின் குறிப்பிட்ட நோக்கம் மற்றும் PHP SOLID பற்றிய உங்கள் புரிதலின் அடிப்படையில் நெகிழ்வாக செய்யப்பட வேண்டும் என்பதை நினைவில் கொள்ளுங்கள். SOLID