Initial commit with Symfony 2.1+Vendors
Signed-off-by: Gergely POLONKAI (W00d5t0ck) <polesz@w00d5t0ck.info>
This commit is contained in:
124
vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ImportCommand.php
vendored
Normal file
124
vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ImportCommand.php
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the LGPL. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\DBAL\Tools\Console\Command;
|
||||
|
||||
use Symfony\Component\Console\Input\InputArgument,
|
||||
Symfony\Component\Console;
|
||||
|
||||
/**
|
||||
* Task for executing arbitrary SQL that can come from a file or directly from
|
||||
* the command line.
|
||||
*
|
||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.0
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
*/
|
||||
class ImportCommand extends Console\Command\Command
|
||||
{
|
||||
/**
|
||||
* @see Console\Command\Command
|
||||
*/
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('dbal:import')
|
||||
->setDescription('Import SQL file(s) directly to Database.')
|
||||
->setDefinition(array(
|
||||
new InputArgument(
|
||||
'file', InputArgument::REQUIRED | InputArgument::IS_ARRAY, 'File path(s) of SQL to be executed.'
|
||||
)
|
||||
))
|
||||
->setHelp(<<<EOT
|
||||
Import SQL file(s) directly to Database.
|
||||
EOT
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see Console\Command\Command
|
||||
*/
|
||||
protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output)
|
||||
{
|
||||
$conn = $this->getHelper('db')->getConnection();
|
||||
|
||||
if (($fileNames = $input->getArgument('file')) !== null) {
|
||||
foreach ((array) $fileNames as $fileName) {
|
||||
$fileName = realpath($fileName);
|
||||
|
||||
if ( ! file_exists($fileName)) {
|
||||
throw new \InvalidArgumentException(
|
||||
sprintf("SQL file '<info>%s</info>' does not exist.", $fileName)
|
||||
);
|
||||
} else if ( ! is_readable($fileName)) {
|
||||
throw new \InvalidArgumentException(
|
||||
sprintf("SQL file '<info>%s</info>' does not have read permissions.", $fileName)
|
||||
);
|
||||
}
|
||||
|
||||
$output->write(sprintf("Processing file '<info>%s</info>'... ", $fileName));
|
||||
$sql = file_get_contents($fileName);
|
||||
|
||||
if ($conn instanceof \Doctrine\DBAL\Driver\PDOConnection) {
|
||||
// PDO Drivers
|
||||
try {
|
||||
$lines = 0;
|
||||
|
||||
$stmt = $conn->prepare($sql);
|
||||
$stmt->execute();
|
||||
|
||||
do {
|
||||
// Required due to "MySQL has gone away!" issue
|
||||
$stmt->fetch();
|
||||
$stmt->closeCursor();
|
||||
|
||||
$lines++;
|
||||
} while ($stmt->nextRowset());
|
||||
|
||||
$output->write(sprintf('%d statements executed!', $lines) . PHP_EOL);
|
||||
} catch (\PDOException $e) {
|
||||
$output->write('error!' . PHP_EOL);
|
||||
|
||||
throw new \RuntimeException($e->getMessage(), $e->getCode(), $e);
|
||||
}
|
||||
} else {
|
||||
// Non-PDO Drivers (ie. OCI8 driver)
|
||||
$stmt = $conn->prepare($sql);
|
||||
$rs = $stmt->execute();
|
||||
|
||||
if ($rs) {
|
||||
$output->writeln('OK!' . PHP_EOL);
|
||||
} else {
|
||||
$error = $stmt->errorInfo();
|
||||
|
||||
$output->write('error!' . PHP_EOL);
|
||||
|
||||
throw new \RuntimeException($error[2], $error[0]);
|
||||
}
|
||||
|
||||
$stmt->closeCursor();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
133
vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ReservedWordsCommand.php
vendored
Normal file
133
vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ReservedWordsCommand.php
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the LGPL. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
|
||||
namespace Doctrine\DBAL\Tools\Console\Command;
|
||||
|
||||
use Symfony\Component\Console\Input\InputArgument,
|
||||
Symfony\Component\Console\Input\InputOption,
|
||||
Symfony\Component\Console\Command\Command,
|
||||
Symfony\Component\Console\Input\InputInterface,
|
||||
Symfony\Component\Console\Output\OutputInterface;
|
||||
use Doctrine\DBAL\Platforms\Keywords\ReservedKeywordsValidator;
|
||||
|
||||
class ReservedWordsCommand extends Command
|
||||
{
|
||||
private $keywordListClasses = array(
|
||||
'mysql' => 'Doctrine\DBAL\Platforms\Keywords\MySQLKeywords',
|
||||
'mssql' => 'Doctrine\DBAL\Platforms\Keywords\MsSQLKeywords',
|
||||
'sqlite' => 'Doctrine\DBAL\Platforms\Keywords\SQLiteKeywords',
|
||||
'pgsql' => 'Doctrine\DBAL\Platforms\Keywords\PostgreSQLKeywords',
|
||||
'oracle' => 'Doctrine\DBAL\Platforms\Keywords\OracleKeywords',
|
||||
'db2' => 'Doctrine\DBAL\Platforms\Keywords\DB2Keywords',
|
||||
);
|
||||
|
||||
/**
|
||||
* If you want to add or replace a keywords list use this command
|
||||
*
|
||||
* @param string $name
|
||||
* @param string $class
|
||||
*/
|
||||
public function setKeywordListClass($name, $class)
|
||||
{
|
||||
$this->keywordListClasses[$name] = $class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see Console\Command\Command
|
||||
*/
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('dbal:reserved-words')
|
||||
->setDescription('Checks if the current database contains identifiers that are reserved.')
|
||||
->setDefinition(array(
|
||||
new InputOption(
|
||||
'list', 'l', InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Keyword-List name.'
|
||||
)
|
||||
))
|
||||
->setHelp(<<<EOT
|
||||
Checks if the current database contains tables and columns
|
||||
with names that are identifiers in this dialect or in other SQL dialects.
|
||||
|
||||
By default SQLite, MySQL, PostgreSQL, MsSQL and Oracle
|
||||
keywords are checked:
|
||||
|
||||
<info>doctrine dbal:reserved-words</info>
|
||||
|
||||
If you want to check against specific dialects you can
|
||||
pass them to the command:
|
||||
|
||||
<info>doctrine dbal:reserved-words mysql pgsql</info>
|
||||
|
||||
The following keyword lists are currently shipped with Doctrine:
|
||||
|
||||
* mysql
|
||||
* pgsql
|
||||
* sqlite
|
||||
* oracle
|
||||
* mssql
|
||||
* db2 (Not checked by default)
|
||||
EOT
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see Console\Command\Command
|
||||
*/
|
||||
protected function execute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
/* @var $conn Doctrine\DBAL\Connection */
|
||||
$conn = $this->getHelper('db')->getConnection();
|
||||
|
||||
$keywordLists = (array)$input->getOption('list');
|
||||
if (!$keywordLists) {
|
||||
$keywordLists = array('mysql', 'pgsql', 'sqlite', 'oracle', 'mssql');
|
||||
}
|
||||
|
||||
$keywords = array();
|
||||
foreach ($keywordLists AS $keywordList) {
|
||||
if (!isset($this->keywordListClasses[$keywordList])) {
|
||||
throw new \InvalidArgumentException(
|
||||
"There exists no keyword list with name '" . $keywordList . "'. ".
|
||||
"Known lists: " . implode(", ", array_keys($this->keywordListClasses))
|
||||
);
|
||||
}
|
||||
$class = $this->keywordListClasses[$keywordList];
|
||||
$keywords[] = new $class;
|
||||
}
|
||||
|
||||
$output->write('Checking keyword violations for <comment>' . implode(", ", $keywordLists) . "</comment>...", true);
|
||||
|
||||
/* @var $schema \Doctrine\DBAL\Schema\Schema */
|
||||
$schema = $conn->getSchemaManager()->createSchema();
|
||||
$visitor = new ReservedKeywordsValidator($keywords);
|
||||
$schema->visit($visitor);
|
||||
|
||||
$violations = $visitor->getViolations();
|
||||
if (count($violations) == 0) {
|
||||
$output->write("No reserved keywords violations have been found!", true);
|
||||
} else {
|
||||
$output->write('There are <error>' . count($violations) . '</error> reserved keyword violations in your database schema:', true);
|
||||
foreach ($violations AS $violation) {
|
||||
$output->write(' - ' . $violation, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
87
vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/RunSqlCommand.php
vendored
Normal file
87
vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/RunSqlCommand.php
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
/*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the LGPL. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\DBAL\Tools\Console\Command;
|
||||
|
||||
use Symfony\Component\Console\Input\InputArgument,
|
||||
Symfony\Component\Console\Input\InputOption,
|
||||
Symfony\Component\Console;
|
||||
|
||||
/**
|
||||
* Task for executing arbitrary SQL that can come from a file or directly from
|
||||
* the command line.
|
||||
*
|
||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.0
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
*/
|
||||
class RunSqlCommand extends Console\Command\Command
|
||||
{
|
||||
/**
|
||||
* @see Console\Command\Command
|
||||
*/
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('dbal:run-sql')
|
||||
->setDescription('Executes arbitrary SQL directly from the command line.')
|
||||
->setDefinition(array(
|
||||
new InputArgument('sql', InputArgument::REQUIRED, 'The SQL statement to execute.'),
|
||||
new InputOption('depth', null, InputOption::VALUE_REQUIRED, 'Dumping depth of result set.', 7)
|
||||
))
|
||||
->setHelp(<<<EOT
|
||||
Executes arbitrary SQL directly from the command line.
|
||||
EOT
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see Console\Command\Command
|
||||
*/
|
||||
protected function execute(Console\Input\InputInterface $input, Console\Output\OutputInterface $output)
|
||||
{
|
||||
$conn = $this->getHelper('db')->getConnection();
|
||||
|
||||
if (($sql = $input->getArgument('sql')) === null) {
|
||||
throw new \RuntimeException("Argument 'SQL' is required in order to execute this command correctly.");
|
||||
}
|
||||
|
||||
$depth = $input->getOption('depth');
|
||||
|
||||
if ( ! is_numeric($depth)) {
|
||||
throw new \LogicException("Option 'depth' must contains an integer value");
|
||||
}
|
||||
|
||||
if (preg_match('/^select/i', $sql)) {
|
||||
$resultSet = $conn->fetchAll($sql);
|
||||
} else {
|
||||
$resultSet = $conn->executeUpdate($sql);
|
||||
}
|
||||
|
||||
ob_start();
|
||||
\Doctrine\Common\Util\Debug::dump($resultSet, (int) $depth);
|
||||
$message = ob_get_clean();
|
||||
|
||||
$output->write($message);
|
||||
}
|
||||
}
|
74
vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Helper/ConnectionHelper.php
vendored
Normal file
74
vendor/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Helper/ConnectionHelper.php
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
/*
|
||||
* $Id$
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* This software consists of voluntary contributions made by many individuals
|
||||
* and is licensed under the LGPL. For more information, see
|
||||
* <http://www.doctrine-project.org>.
|
||||
*/
|
||||
|
||||
namespace Doctrine\DBAL\Tools\Console\Helper;
|
||||
|
||||
use Symfony\Component\Console\Helper\Helper,
|
||||
Doctrine\DBAL\Connection;
|
||||
|
||||
/**
|
||||
* Doctrine CLI Connection Helper.
|
||||
*
|
||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||
* @link www.doctrine-project.org
|
||||
* @since 2.0
|
||||
* @version $Revision$
|
||||
* @author Benjamin Eberlei <kontakt@beberlei.de>
|
||||
* @author Guilherme Blanco <guilhermeblanco@hotmail.com>
|
||||
* @author Jonathan Wage <jonwage@gmail.com>
|
||||
* @author Roman Borschel <roman@code-factory.org>
|
||||
*/
|
||||
class ConnectionHelper extends Helper
|
||||
{
|
||||
/**
|
||||
* Doctrine Database Connection
|
||||
* @var Connection
|
||||
*/
|
||||
protected $_connection;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Connection $connection Doctrine Database Connection
|
||||
*/
|
||||
public function __construct(Connection $connection)
|
||||
{
|
||||
$this->_connection = $connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves Doctrine Database Connection
|
||||
*
|
||||
* @return Connection
|
||||
*/
|
||||
public function getConnection()
|
||||
{
|
||||
return $this->_connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see Helper
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'connection';
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user