Configuration de projet

Normalement, le programme d’installation limite les modifications à apporter aux fichiers de configuration et votre application est opérationnelle après l’installation.

_images/firstProject.png

Configuration principale

La configuration principale d’un projet est localisée dans le fichier app/conf/config.php.

app/conf/config.php
 1return array(
 2             "siteUrl"=>"%siteUrl%",
 3             "database"=>[
 4                             "dbName"=>"%dbName%",
 5                             "serverName"=>"%serverName%",
 6                             "port"=>"%port%",
 7                             "user"=>"%user%",
 8                             "password"=>"%password%"
 9             ],
10             "namespaces"=>[],
11             "templateEngine"=>'Ubiquity\views\engine\twig\Twig',
12             "templateEngineOptions"=>array("cache"=>false),
13             "test"=>false,
14             "debug"=>false,
15             "di"=>[%injections%],
16             "cacheDirectory"=>"cache/",
17             "mvcNS"=>["models"=>"models","controllers"=>"controllers"]
18);

Configuration des services

Les services chargés au démarrage sont configurés dans le fichier app/conf/services.php.

app/conf/services.php
 1     use Ubiquity\controllers\Router;
 2
 3     try{
 4             \Ubiquity\cache\CacheManager::startProd($config);
 5     }catch(Exception $e){
 6             //Do something
 7     }
 8     \Ubiquity\orm\DAO::startDatabase($config);
 9     Router::start();
10     Router::addRoute("_default", "controllers\\IndexController");

URLs sympas

Apache

Le framework est livré avec un fichier .htaccess qui est utilisé pour autoriser les URLs sans index.php. Si vous utilisez Apache comme serveur pour votre application Ubiquity, assurez-vous d’activer le module mod_rewrite.

.htaccess
AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
     RewriteEngine On
     RewriteBase /blog/
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{HTTP_ACCEPT} !(.*images.*)
     RewriteRule ^(.*)$ index.php?c=$1 [L,QSA]
</IfModule>

Voir Apache configuration pour des détails supplémentaires.

Nginx

Avec Nginx, la directive suivante dans la configuration de votre site autorisera les URL « sympas » :

location /{
      rewrite ^/(.*)$ /index.php?c=$1 last;
}

Voir NginX configuration pour des informations supplémentaires.

Driver Laravel Valet

Valet est un environnement de développement php pour les adeptes Mac. Pas de Vagrant, pas de fichier /etc/hosts. Vous pouvez même partager vos sites publiquement en utilisant des tunnels locaux.

Laravel Valet configure votre Mac pour qu’il exécute toujours Nginx en arrière-plan au démarrage de votre machine. Ensuite, en utilisant DnsMasq, Valet renvoie toutes les requêtes sur le domaine *.test pour pointer vers des sites installés sur votre machine locale.

Plus d’informations sur Laravel Valet

Créez UbiquityValetDriver.php sous ~/.config/valet/Drivers/ ajoutez le code php ci-dessous et sauvegardez-le.

<?php

class UbiquityValetDriver extends BasicValetDriver{

        /**
        * Determine if the driver serves the request.
        *
        * @param  string  $sitePath
        * @param  string  $siteName
        * @param  string  $uri
        * @return bool
        */
        public function serves($sitePath, $siteName, $uri){
                if(is_dir($sitePath . DIRECTORY_SEPARATOR . '.ubiquity')) {
                        return true;
                }
                return false;
        }

        public function isStaticFile($sitePath, $siteName, $uri){
                if(is_file($sitePath . $uri)) {
                        return $sitePath . $uri;
                }
                return false;
        }

        /**
        * Get the fully resolved path to the application's front controller.
        *
        * @param  string  $sitePath
        * @param  string  $siteName
        * @param  string  $uri
        * @return string
        */
        public function frontControllerPath($sitePath, $siteName, $uri){
                $sitePath.='/public';
                $_SERVER['DOCUMENT_ROOT'] = $sitePath;
                $_SERVER['SCRIPT_NAME'] = '/index.php';
                $_SERVER['SCRIPT_FILENAME'] = $sitePath . '/index.php';
                $_SERVER['DOCUMENT_URI'] = $sitePath . '/index.php';
                $_SERVER['PHP_SELF'] = '/index.php';

                $_GET['c'] = '';

                if($uri) {
                        $_GET['c'] = ltrim($uri, '/');
                        $_SERVER['PHP_SELF'] = $_SERVER['PHP_SELF']. $uri;
                        $_SERVER['PATH_INFO'] = $uri;
                }

                $indexPath = $sitePath . '/index.php';

                if(file_exists($indexPath)) {
                        return $indexPath;
                }
        }
}