Пример #1
0
    /**
     * @todo inserisce nel Config i settaggi della classe
     */
    private function set(){

        // recupero le impostazioni
        $impostazioni = Nore_Config::run()->get();

        // recupero la cartella di installazione
        $cartella_installazione = $impostazioni['Nore_Core']['cartella_installazione'];

        // recupero la request uri senza la cartella d'installazione e query string
        $query_uri = str_replace($cartella_installazione, '', $_SERVER['REQUEST_URI']);

        $richiesta = str_replace('?'.$_SERVER['QUERY_STRING'], '', $query_uri);

        // recupero il redirect
        $redirect = str_replace($cartella_installazione, '', isset($_SERVER['REDIRECT_URL'])?$_SERVER['REDIRECT_URL']:'');

        Nore_Config::run()->set(
            array(
                'metodo'              => $_SERVER['REQUEST_METHOD'],
                'get'                 => $_GET,
                'post'                => $_POST,
                'stato_richiesta'     => $_SERVER['REDIRECT_STATUS'],
                'richiesta'           => $richiesta,
                'parametri_get'       => $_SERVER['QUERY_STRING'],
                'redirect_url'        => $redirect,
                'parametri_redirect'  => isset($_SERVER['REDIRECT_QUERY_STRING'])?$_SERVER['REDIRECT_QUERY_STRING']:false,
            )
        );
    }
Пример #2
0
 public function __construct($parametri) {
     var_dump(
         'App di Test Avviata',
         $parametri,
         Nore_Routing::run()->costruisci_url_assoluto('/Test/controller/action/a/b/c/d=1/e=2/'),
         Nore_Config::run()->get()
     );
 }
Пример #3
0
    /**
     * @todo Avvia l'applicazione richiesta
     */
    private function avvia_app(){
        // recupero le impostazioni
        $impostazioni = Nore_Config::run()->get();

        // tramuto in array l'url interno
        $parametri = explode( '/' , $impostazioni['Nore_Routing']['url_interno']);

        // istanzio un oggetto yaml parser
        $yaml = new Parser();

        // il percorso del file app_pubbliche.yml
        $file = $impostazioni['Nore_Core']['path_app'] . DIRECTORY_SEPARATOR . 'Nore' . DIRECTORY_SEPARATOR . 'app_pubbliche.yml';

        // leggo il file app_pubbliche.yml
        $app_pubbliche = $yaml->parse(file_get_contents($file));

        // controllo se l'app da avviare tramite url è nelle app_pubbliche
        if (in_array( $parametri[1], $app_pubbliche ) ){
            // costruisco il nome dell'applicazione da caricare, nel seguente formato
            // \namespace\App

            $app = "\\".$parametri[1].'_App';
            // controllo se esiste l'App richiesta
            if ( class_exists($app) )

                // istanzio l'applicazione e gli passo il controllo
                $app = new $app($parametri);
                // altrimenti gestisco l'errore

            else

                throw new Nore_Eccezione('Errore non riesco a trovare: '.$app);

        }

        // altrimenti gestico l'errore, meglio non segnalare che non esiste l'app
        else
            throw new Nore_Eccezione('Errore non riesco a trovare: '.$parametri[1]);

    }
Пример #4
0
/**
* @todo inserisce nel Config i settaggi della classe
*/
    private function set(){

        // recupero il nome della pagina php usata come front controller
        $front_controller = explode('/' , $_SERVER['SCRIPT_NAME']);

        // prendo l'ultimo elemento di $_SERVER['SCRIPT_NAME']
        $front_controller = end( $front_controller );

        // recupero la cartella dove è installato il framework a partire dalla web root
        // tolgo il /front controller da $_SERVER['SCRIPT_NAME']
        $cartella_installazione = str_replace( '/'.$front_controller, '', $_SERVER['SCRIPT_NAME']);

        Nore_Config::run()->set(
            array(
                'web_server'             => $this->web_server(),
                'path_base'              => $_SERVER['DOCUMENT_ROOT'].$cartella_installazione,
                'path_app'               => $_SERVER['DOCUMENT_ROOT'].$cartella_installazione.DIRECTORY_SEPARATOR.'Application',
                'path_public'            => $_SERVER['DOCUMENT_ROOT'].$cartella_installazione.DIRECTORY_SEPARATOR.'Public',
                'path_temp'              => $_SERVER['DOCUMENT_ROOT'].$cartella_installazione.DIRECTORY_SEPARATOR.'Tmp',
                'cartella_installazione' => $cartella_installazione,
                'front_controller'       => '/'.$front_controller,
            )
        );
    }
Пример #5
0
    /**
     * @todo Questo metodo genera un url assoluto, utile per collegare più pagine
     *       tra di loro. N.B. da utilizzare solo per collegare pagine e non file
     *       statici, per quest'ultimo caso esiste un apposito metodo.
     *
     * @param string $query_string
     * @return string
     */
    public function costruisci_url_assoluto($query_string) {
        // recupero le impostazioni
        $impostazioni = Nore_Config::run()->get();

        // aggiungo eventualmente la lingua
        $query_string = $this->lingua($query_string,true);

        // costruisco l'url assoluto, ['base_url'] arriva già impostato in base al rewriting
        $url = $impostazioni['Nore_Routing']['base_url'] . $query_string;

        return $url;
    }
Пример #6
0
 /**
  * @todo Il distruttore della classe, ricopio nella sessione
  */
 function __destruct() {
     $_SESSION = Nore_Config::run()->mie();
 }
Пример #7
0
    /**
     * Imposta il formato del response in caso si decide non usare il
     * riconoscimento automatico
     *
     * @param string $formato
     * @param string $default_namespace
     */
    public function set_formato($formato,$default_namespace=false) {
        // recupero le impostazioni
        $impostazioni = Nore_Config::run()->mie();

        // controllo se viene passato il namespace per caricare un Render di terze parti
        if ($default_namespace)
            $formato = $default_namespace.$formato;

        // altrimenti carico quello di default
        else
            $formato = $impostazioni['Response']['default_namespace'].$formato;
        // controllo che il formato sia tra quelli abilitati
        if (in_array($formato, $impostazioni['Response']['tipi_abilitati']) )
            Nore_Config::run()->set( array('formato' => $formato ));
        else
            throw new Nore_Eccezione('Il formato scelto ('.$formato.') non e\' gestito');
    }