Classe che prepara stringhe da richieste HTTP a livello di controller PHP

-1

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/ .

    
posta Jack hardcastle 24.03.2016 - 16:16
fonte

1 risposta

1

Vuoi creare classe di utilità o classe helper . Alcuni possibili nomi di esempio potrebbero essere StringUtils , StringHelper , RequestUtils o RequestHelper . Quella classe dovrebbe essere statica e avere un metodo statico che sarebbe chiamato escape per esempio. Un'altra possibilità è quella di aggiungere quel metodo nella tua classe Request.

    
risposta data 24.03.2016 - 17:37
fonte

Leggi altre domande sui tag