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.
Configuration principale
La configuration principale d’un projet est localisée dans le fichier 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
.
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.
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;
}
}
}