Ho una libreria /Web/
come segue
/Web/
Builder/
Builder.php
Exceptions/
ExceptionHandler.php
JSONSerializer/
CategoryJSONSerializer.php
ProjectJSONSerializer.php
....
Module/
Category/
Controller/
Category.php
Service/
Category.php
Voglio creare una nuova classe che preparerà qualsiasi stringa per l'inserimento quando viene passata attraverso il controller prima di essere passata al modello per l'inserimento.
public function putIndex()
{
try {
try {
$this->category->edit(
new CategoryVO($this->request->getParam('id'), $this->request->getParam('original')),
new CategoryVO($this->request->getParam('id'), $this->request->getParam('edited'))
);
http_response_code(204);
} catch (CategoryValidation $validationException) {
echo json_encode($this->service->prepareErrors(
$validationException
));
}
} catch(\Exception $e) {
http_response_code(500);
}
}
Viene chiamato $this->request->getParam('id')
, a questo punto viene verificata la richiesta HTTP e viene recuperato il valore per la chiave id
dall'intestazione della richiesta. Voglio pulire queste stringhe, ma voglio che questo processo sia verificabile (che i miei controllori attualmente non lo sono) e mockable se necessario.
Ho immaginato che la mia classe Servizio / Categoria potesse offrire questo servizio, tuttavia, come ho detto più tardi, lo richiedo su tutti i controller.
Quindi ho bisogno di creare una nuova classe per evitare stringhe, rimuovere caratteri speciali e rimuovere qualsiasi html. Questo mi sembra una responsabilità multipla, e mi chiedevo se qualcuno potesse suggerire un modo adeguato per raggiungere questo obiettivo.
Finalmente ho difficoltà a nominare queste classi.
Questo servizio deve essere utilizzabile anche su tutti i controller. Quindi preferirei mantenere questa classe (i) nello spazio dei nomi /Web/
.