Ho iniziato a utilizzare OOP in PHP di recente. Per ogni modello, creo due classi. Una classe per le operazioni di lettura e un'altra classe Manager per tutte le operazioni di creazione / aggiornamento / eliminazione. Ad esempio,
<?php
// This is a sample class, just to convey the idea
class Image {
public static function loadById() {}
public static function loadByName() {}
public static function search() {}
public function __construct () {}
public function __get () {}
public function getData() {}
public function getRating() {}
public function getSimilar() {}
public function getRelatedNews() {}
}
class ImageManager extends Image {
public function __construct() {}
public function __set() {}
public function remove() {}
public function update() {}
public function save() {}
private function updateSomethingElse() {}
}
?>
Il motivo per cui ho diviso questo in due classi era che pensavo fosse un po 'più sicuro, dal momento che non esponeva i metodi C / U / D a un utente normale. Inoltre, ho pensato che questo potrebbe essere più veloce / efficiente in memoria dal momento che sto caricando solo la classe più piccola per il 95% delle richieste. Ma ora penso che queste ragioni siano troppo insignificanti per mantenere due file.
È una cattiva pratica? Normalmente, le classi Manager vengono caricate solo durante le operazioni di amministrazione. Le azioni dell'utente aggiornano raramente il database (tranne forse durante un'operazione di classificazione o un processo cron per aggiornare il conteggio delle visualizzazioni). Devo combinare entrambe le classi nella classe Image
?