refactor propel configuration
This commit is contained in:
@@ -17,7 +17,8 @@
|
|||||||
"symfony/dependency-injection" : "2.2.*",
|
"symfony/dependency-injection" : "2.2.*",
|
||||||
"symfony/event-dispatcher" : "2.2.*",
|
"symfony/event-dispatcher" : "2.2.*",
|
||||||
"symfony/http-kernel" : "2.2.*",
|
"symfony/http-kernel" : "2.2.*",
|
||||||
"symfony/routing" : "2.2.*"
|
"symfony/routing" : "2.2.*",
|
||||||
|
"symfony/yaml" : "2.2.*"
|
||||||
},
|
},
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"config" : {
|
"config" : {
|
||||||
|
|||||||
49
composer.lock
generated
49
composer.lock
generated
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"hash": "b3f80466f5d4e8ce553b10dd65630a69",
|
"hash": "89f5db06d70dd16aa1ba0f4983c89335",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "ircmaxell/password-compat",
|
"name": "ircmaxell/password-compat",
|
||||||
@@ -619,6 +619,53 @@
|
|||||||
"description": "Symfony Routing Component",
|
"description": "Symfony Routing Component",
|
||||||
"homepage": "http://symfony.com",
|
"homepage": "http://symfony.com",
|
||||||
"time": "2013-02-11 11:24:47"
|
"time": "2013-02-11 11:24:47"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/yaml",
|
||||||
|
"version": "v2.2.0",
|
||||||
|
"target-dir": "Symfony/Component/Yaml",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/Yaml.git",
|
||||||
|
"reference": "v2.2.0-RC3"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/Yaml/zipball/v2.2.0-RC3",
|
||||||
|
"reference": "v2.2.0-RC3",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "2.2-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": {
|
||||||
|
"Symfony\\Component\\Yaml\\": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "http://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony Yaml Component",
|
||||||
|
"homepage": "http://symfony.com",
|
||||||
|
"time": "2013-01-27 16:49:19"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [
|
"packages-dev": [
|
||||||
|
|||||||
@@ -13,8 +13,9 @@ $loader = require __DIR__ . "/vendor/autoload.php";
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (file_exists(THELIA_ROOT . '/local/config/config_db.php')) {
|
if (!file_exists(THELIA_ROOT . '/local/config/database.yml')) {
|
||||||
require THELIA_ROOT . '/local/config/config_db.php';
|
|
||||||
} else {
|
|
||||||
define('THELIA_INSTALL_MODE',true);
|
define('THELIA_INSTALL_MODE',true);
|
||||||
}
|
}
|
||||||
|
/*else {
|
||||||
|
define('THELIA_INSTALL_MODE',true);
|
||||||
|
}*/
|
||||||
|
|||||||
69
core/lib/Thelia/Config/DatabaseConfiguration.php
Normal file
69
core/lib/Thelia/Config/DatabaseConfiguration.php
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
/*************************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Thelia */
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) OpenStudio */
|
||||||
|
/* email : info@thelia.net */
|
||||||
|
/* web : http://www.thelia.net */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify */
|
||||||
|
/* it under the terms of the GNU General Public License as published by */
|
||||||
|
/* the Free Software Foundation; either version 3 of the License */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, */
|
||||||
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||||
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||||
|
/* GNU General Public License for more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License */
|
||||||
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
/* */
|
||||||
|
/*************************************************************************************/
|
||||||
|
|
||||||
|
namespace Thelia\Config;
|
||||||
|
|
||||||
|
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||||
|
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
|
||||||
|
|
||||||
|
class DatabaseConfiguration implements ConfigurationInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates the configuration tree builder.
|
||||||
|
*
|
||||||
|
* @return \Symfony\Component\Config\Definition\Builder\TreeBuilder The tree builder
|
||||||
|
*/
|
||||||
|
public function getConfigTreeBuilder()
|
||||||
|
{
|
||||||
|
$treeBuilder = new TreeBuilder();
|
||||||
|
$rootNode = $treeBuilder->root("database");
|
||||||
|
|
||||||
|
$rootNode
|
||||||
|
->children()
|
||||||
|
->arrayNode("connection")
|
||||||
|
->children()
|
||||||
|
->scalarNode("driver")
|
||||||
|
->defaultValue("mysql")
|
||||||
|
->validate()
|
||||||
|
->ifNotInArray(array("mysql", "sqlite", "pgsql"))
|
||||||
|
->thenInvalid("Invalid driver database %s")
|
||||||
|
->end()
|
||||||
|
->end()
|
||||||
|
->scalarNode("user")
|
||||||
|
->defaultValue("root")
|
||||||
|
->end()
|
||||||
|
->scalarNode("password")
|
||||||
|
->defaultValue("")
|
||||||
|
->end()
|
||||||
|
->scalarNode("dsn")
|
||||||
|
->cannotBeEmpty()
|
||||||
|
->end()
|
||||||
|
->end()
|
||||||
|
->end()
|
||||||
|
->end()
|
||||||
|
;
|
||||||
|
|
||||||
|
return $treeBuilder;
|
||||||
|
}
|
||||||
|
}
|
||||||
78
core/lib/Thelia/Config/DefinePropel.php
Normal file
78
core/lib/Thelia/Config/DefinePropel.php
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
<?php
|
||||||
|
/*************************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Thelia */
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) OpenStudio */
|
||||||
|
/* email : info@thelia.net */
|
||||||
|
/* web : http://www.thelia.net */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify */
|
||||||
|
/* it under the terms of the GNU General Public License as published by */
|
||||||
|
/* the Free Software Foundation; either version 3 of the License */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, */
|
||||||
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||||
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||||
|
/* GNU General Public License for more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License */
|
||||||
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
/* */
|
||||||
|
/*************************************************************************************/
|
||||||
|
|
||||||
|
namespace Thelia\Config;
|
||||||
|
|
||||||
|
use Symfony\Component\Config\Definition\Processor;
|
||||||
|
use Symfony\Component\Config\Definition\ConfigurationInterface;
|
||||||
|
|
||||||
|
|
||||||
|
class DefinePropel {
|
||||||
|
|
||||||
|
private $processorConfig;
|
||||||
|
|
||||||
|
public function __construct(ConfigurationInterface $configuration, array $propelConf)
|
||||||
|
{
|
||||||
|
$processor = new Processor();
|
||||||
|
$this->processorConfig = $processor->processConfiguration($configuration, $propelConf);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getConfig()
|
||||||
|
{
|
||||||
|
$connection = $this->processorConfig["connection"];
|
||||||
|
return $conf = array(
|
||||||
|
"datasources" =>
|
||||||
|
array(
|
||||||
|
"thelia" =>
|
||||||
|
array(
|
||||||
|
"adapter" => $connection["driver"],
|
||||||
|
"connection" =>
|
||||||
|
array(
|
||||||
|
"dsn" => $connection["dsn"],
|
||||||
|
"user" => $connection["user"],
|
||||||
|
"password" => $connection["password"]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* $conf = array (
|
||||||
|
'datasources' =>
|
||||||
|
array (
|
||||||
|
'thelia' =>
|
||||||
|
array (
|
||||||
|
'adapter' => THELIA_DB_ADAPTER,
|
||||||
|
'connection' =>
|
||||||
|
array (
|
||||||
|
'dsn' => THELIA_DB_DSN,
|
||||||
|
'user' => THELIA_DB_USER,
|
||||||
|
'password' => THELIA_DB_PASSWORD,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'generator_version' => '1.6.8',
|
||||||
|
);
|
||||||
|
return $conf;
|
||||||
|
*/
|
||||||
|
}
|
||||||
@@ -34,10 +34,14 @@ namespace Thelia\Core;
|
|||||||
|
|
||||||
use Symfony\Component\HttpKernel\Kernel;
|
use Symfony\Component\HttpKernel\Kernel;
|
||||||
use Symfony\Component\Config\Loader\LoaderInterface;
|
use Symfony\Component\Config\Loader\LoaderInterface;
|
||||||
|
use Symfony\Component\Config\Definition\Processor;
|
||||||
|
use Symfony\Component\Yaml\Yaml;
|
||||||
|
|
||||||
|
|
||||||
use Thelia\Core\Bundle;
|
use Thelia\Core\Bundle;
|
||||||
use Thelia\Log\Tlog;
|
use Thelia\Log\Tlog;
|
||||||
|
use Thelia\Config\DatabaseConfiguration;
|
||||||
|
use Thelia\Config\DefinePropel;
|
||||||
|
|
||||||
use Propel;
|
use Propel;
|
||||||
use PropelConfiguration;
|
use PropelConfiguration;
|
||||||
@@ -48,26 +52,37 @@ class Thelia extends Kernel
|
|||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
parent::init();
|
parent::init();
|
||||||
|
if($this->debug) {
|
||||||
|
ini_set('display_errors', 1);
|
||||||
|
}
|
||||||
$this->initPropel();
|
$this->initPropel();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function initPropel()
|
protected function initPropel()
|
||||||
{
|
{
|
||||||
if (file_exists(THELIA_ROOT . '/local/config/config_db.php') === false) {
|
if (file_exists(THELIA_ROOT . '/local/config/database.yml') === false) {
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
Propel::init(THELIA_CONF_DIR . "/config_thelia.php");
|
|
||||||
|
|
||||||
if ($this->isDebug()) {
|
if(! Propel::isInit()) {
|
||||||
Propel::setLogger(Tlog::getInstance());
|
|
||||||
$config = Propel::getConfiguration(PropelConfiguration::TYPE_OBJECT);
|
|
||||||
$config->setParameter('debugpdo.logging.details.method.enabled', true);
|
|
||||||
$config->setParameter('debugpdo.logging.details.time.enabled', true);
|
|
||||||
$config->setParameter('debugpdo.logging.details.mem.enabled', true);
|
|
||||||
|
|
||||||
$con = Propel::getConnection("thelia");
|
$definePropel = new DefinePropel(new DatabaseConfiguration(),
|
||||||
$con->useDebug(true);
|
Yaml::parse(THELIA_ROOT . '/local/config/database.yml'));
|
||||||
|
|
||||||
|
Propel::setConfiguration($definePropel->getConfig());
|
||||||
|
|
||||||
|
if ($this->isDebug()) {
|
||||||
|
Propel::setLogger(Tlog::getInstance());
|
||||||
|
$config = Propel::getConfiguration(PropelConfiguration::TYPE_OBJECT);
|
||||||
|
$config->setParameter('debugpdo.logging.details.method.enabled', true);
|
||||||
|
$config->setParameter('debugpdo.logging.details.time.enabled', true);
|
||||||
|
$config->setParameter('debugpdo.logging.details.mem.enabled', true);
|
||||||
|
|
||||||
|
$con = Propel::getConnection("thelia");
|
||||||
|
$con->useDebug(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Propel::initialize();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Submodule core/lib/Thelia/Tpex updated: 0a3c053561...ce3cc65f6e
@@ -1,16 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// database acces configuration for mysql
|
|
||||||
// ---------------------------------------------
|
|
||||||
|
|
||||||
//database type : mysql, sqlite, pgsql, etc
|
|
||||||
define('THELIA_DB_ADAPTER','mysql');
|
|
||||||
|
|
||||||
// database login
|
|
||||||
define('THELIA_DB_USER', '__DB_LOGIN__');
|
|
||||||
|
|
||||||
// database password
|
|
||||||
define('THELIA_DB_PASSWORD', '__DB_PASSWORD__');
|
|
||||||
|
|
||||||
//database DSN
|
|
||||||
define('THELIA_DB_DSN','mysql:dbname=__DB_NAME__;host:__DB_HOST__');
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// database acces configuration for mysql
|
|
||||||
// ---------------------------------------------
|
|
||||||
|
|
||||||
//database type : mysql, sqlite, pgsql, etc
|
|
||||||
define('THELIA_DB_ADAPTER','oracle');
|
|
||||||
|
|
||||||
// database login
|
|
||||||
define('THELIA_DB_USER', '__DB_LOGIN__');
|
|
||||||
|
|
||||||
// database password
|
|
||||||
define('THELIA_DB_PASSWORD', '__DB_PASSWORD__');
|
|
||||||
|
|
||||||
//database DSN
|
|
||||||
define('THELIA_DB_DSN','mysql:dbname=__DB_NAME__;host:__DB_HOST__');
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// database acces configuration for postgresql
|
|
||||||
// ---------------------------------------------
|
|
||||||
|
|
||||||
//database type : mysql, sqlite, pgsql, etc
|
|
||||||
define('THELIA_DB_ADAPTER','pgsql');
|
|
||||||
|
|
||||||
// database login
|
|
||||||
define('THELIA_DB_USER', '__DB_LOGIN__');
|
|
||||||
|
|
||||||
// database password
|
|
||||||
define('THELIA_BD_PASSWORD', '__DB_PASSWORD__');
|
|
||||||
|
|
||||||
//database dsn
|
|
||||||
define('THELIA_DB_DSN','pgsql:host=__DB_HOST__;port=__DB_PORT__;dbname=__DB_NAME__;user=__DB_LOGIN__;password=__DB_PASSWORD__');
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
// database acces configuration for sqlite
|
|
||||||
// ---------------------------------------------
|
|
||||||
|
|
||||||
//database type : mysql, sqlite, pgsql, etc
|
|
||||||
define('THELIA_DB_ADAPTER','sqlite');
|
|
||||||
|
|
||||||
// database login
|
|
||||||
define('THELIA_DB_USER', '__DB_LOGIN__');
|
|
||||||
|
|
||||||
// database password
|
|
||||||
define('THELIA_DB_PASSWORD', '__DB_PASSWORD__');
|
|
||||||
|
|
||||||
define('THELIA_DB_DSN','sqlite:__DB_FILE__');
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<?php
|
|
||||||
$conf = array (
|
|
||||||
'datasources' =>
|
|
||||||
array (
|
|
||||||
'thelia' =>
|
|
||||||
array (
|
|
||||||
'adapter' => THELIA_DB_ADAPTER,
|
|
||||||
'connection' =>
|
|
||||||
array (
|
|
||||||
'dsn' => THELIA_DB_DSN,
|
|
||||||
'user' => THELIA_DB_USER,
|
|
||||||
'password' => THELIA_DB_PASSWORD,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'generator_version' => '1.6.8',
|
|
||||||
);
|
|
||||||
return $conf;
|
|
||||||
6
local/config/database.yml
Normal file
6
local/config/database.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
database:
|
||||||
|
connection:
|
||||||
|
driver: mysql
|
||||||
|
user: root
|
||||||
|
password: azerty
|
||||||
|
dsn: mysql:dbname=thelia;host:localhost
|
||||||
Reference in New Issue
Block a user