mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[ticket/12775] Update phpBB/install/database_update.php
PHPBB3-12775
This commit is contained in:
parent
f87e76b910
commit
e7804ecce4
4 changed files with 347 additions and 323 deletions
|
@ -1,297 +1,291 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
///**
|
||||||
*
|
//*
|
||||||
* This file is part of the phpBB Forum Software package.
|
//* This file is part of the phpBB Forum Software package.
|
||||||
*
|
//*
|
||||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
//* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
//* @license GNU General Public License, version 2 (GPL-2.0)
|
||||||
*
|
//*
|
||||||
* For full copyright and license information, please see
|
//* For full copyright and license information, please see
|
||||||
* the docs/CREDITS.txt file.
|
//* the docs/CREDITS.txt file.
|
||||||
*
|
//*
|
||||||
*/
|
//*/
|
||||||
|
//
|
||||||
use Symfony\Component\Config\FileLocator;
|
//use Symfony\Component\Config\FileLocator;
|
||||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
//use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||||
use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
|
//use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
|
||||||
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
|
//use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* @ignore
|
//* @ignore
|
||||||
*/
|
//*/
|
||||||
if (!defined('IN_PHPBB'))
|
//if (!defined('IN_PHPBB'))
|
||||||
{
|
//{
|
||||||
exit;
|
// exit;
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* Get DB connection from config.php.
|
//* Get DB connection from config.php.
|
||||||
*
|
//*
|
||||||
* Used to bootstrap the container.
|
//* Used to bootstrap the container.
|
||||||
*
|
//*
|
||||||
* @param string $config_file
|
//* @param string $config_file
|
||||||
* @return \phpbb\db\driver\driver_interface
|
//* @return \phpbb\db\driver\driver_interface
|
||||||
*/
|
//*/
|
||||||
function phpbb_bootstrap_db_connection($config_file)
|
//function phpbb_bootstrap_db_connection($config_file)
|
||||||
{
|
//{
|
||||||
require($config_file);
|
// require($config_file);
|
||||||
$dbal_driver_class = phpbb_convert_30_dbms_to_31($dbms);
|
// $dbal_driver_class = phpbb_convert_30_dbms_to_31($dbms);
|
||||||
|
//
|
||||||
$db = new $dbal_driver_class();
|
// $db = new $dbal_driver_class();
|
||||||
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, defined('PHPBB_DB_NEW_LINK'));
|
// $db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, defined('PHPBB_DB_NEW_LINK'));
|
||||||
|
//
|
||||||
return $db;
|
// return $db;
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* Get table prefix from config.php.
|
//* Get table prefix from config.php.
|
||||||
*
|
//*
|
||||||
* Used to bootstrap the container.
|
//* Used to bootstrap the container.
|
||||||
*
|
//*
|
||||||
* @param string $config_file
|
//* @param string $config_file
|
||||||
* @return string table prefix
|
//* @return string table prefix
|
||||||
*/
|
//*/
|
||||||
function phpbb_bootstrap_table_prefix($config_file)
|
//function phpbb_bootstrap_table_prefix($config_file)
|
||||||
{
|
//{
|
||||||
require($config_file);
|
// require($config_file);
|
||||||
return $table_prefix;
|
// return $table_prefix;
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* Get enabled extensions.
|
//* Get enabled extensions.
|
||||||
*
|
//*
|
||||||
* Used to bootstrap the container.
|
//* Used to bootstrap the container.
|
||||||
*
|
//*
|
||||||
* @param string $config_file
|
//* @param string $config_file
|
||||||
* @param string $phpbb_root_path
|
//* @param string $phpbb_root_path
|
||||||
* @param \phpbb\db\driver\driver_interface $db The generated connection
|
//* @return array enabled extensions
|
||||||
* @return array enabled extensions
|
//*/
|
||||||
*/
|
//function phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path)
|
||||||
function phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path, &$db)
|
//{
|
||||||
{
|
// $db = phpbb_bootstrap_db_connection($config_file);
|
||||||
$db = phpbb_bootstrap_db_connection($config_file);
|
// $table_prefix = phpbb_bootstrap_table_prefix($config_file);
|
||||||
$table_prefix = phpbb_bootstrap_table_prefix($config_file);
|
// $extension_table = $table_prefix.'ext';
|
||||||
$extension_table = $table_prefix.'ext';
|
//
|
||||||
|
// $sql = 'SELECT *
|
||||||
$sql = 'SELECT *
|
// FROM ' . $extension_table . '
|
||||||
FROM ' . $extension_table . '
|
// WHERE ext_active = 1';
|
||||||
WHERE ext_active = 1';
|
//
|
||||||
|
// $result = $db->sql_query($sql);
|
||||||
$result = $db->sql_query($sql);
|
// $rows = $db->sql_fetchrowset($result);
|
||||||
$rows = $db->sql_fetchrowset($result);
|
// $db->sql_freeresult($result);
|
||||||
$db->sql_freeresult($result);
|
//
|
||||||
|
// $exts = array();
|
||||||
$exts = array();
|
// foreach ($rows as $row)
|
||||||
foreach ($rows as $row)
|
// {
|
||||||
{
|
// $exts[$row['ext_name']] = $phpbb_root_path . 'ext/' . $row['ext_name'] . '/';
|
||||||
$exts[$row['ext_name']] = $phpbb_root_path . 'ext/' . $row['ext_name'] . '/';
|
// }
|
||||||
}
|
//
|
||||||
|
// return $exts;
|
||||||
return $exts;
|
//}
|
||||||
}
|
//
|
||||||
|
///**
|
||||||
/**
|
//* Create the ContainerBuilder object
|
||||||
* Create the ContainerBuilder object
|
//*
|
||||||
*
|
//* @param array $extensions Array of Container extension objects
|
||||||
* @param array $extensions Array of Container extension objects
|
//* @param string $phpbb_root_path Root path
|
||||||
* @param string $phpbb_root_path Root path
|
//* @param string $php_ext PHP Extension
|
||||||
* @param string $php_ext PHP Extension
|
//* @return ContainerBuilder object
|
||||||
* @return ContainerBuilder object
|
//*/
|
||||||
*/
|
//function phpbb_create_container(array $extensions, $phpbb_root_path, $php_ext)
|
||||||
function phpbb_create_container(array $extensions, $phpbb_root_path, $php_ext)
|
//{
|
||||||
{
|
// $container = new ContainerBuilder();
|
||||||
$container = new ContainerBuilder();
|
//
|
||||||
|
// foreach ($extensions as $extension)
|
||||||
foreach ($extensions as $extension)
|
// {
|
||||||
{
|
// $container->registerExtension($extension);
|
||||||
$container->registerExtension($extension);
|
// $container->loadFromExtension($extension->getAlias());
|
||||||
$container->loadFromExtension($extension->getAlias());
|
// }
|
||||||
}
|
//
|
||||||
|
// $container->setParameter('core.root_path', $phpbb_root_path);
|
||||||
$container->setParameter('core.root_path', $phpbb_root_path);
|
// $container->setParameter('core.php_ext', $php_ext);
|
||||||
$container->setParameter('core.php_ext', $php_ext);
|
//
|
||||||
|
// return $container;
|
||||||
return $container;
|
//}
|
||||||
}
|
//
|
||||||
|
///**
|
||||||
/**
|
//* Create installer container
|
||||||
* Create installer container
|
//*
|
||||||
*
|
//* @param string $phpbb_root_path Root path
|
||||||
* @param string $phpbb_root_path Root path
|
//* @param string $php_ext PHP Extension
|
||||||
* @param string $php_ext PHP Extension
|
//* @return ContainerBuilder object
|
||||||
* @return ContainerBuilder object
|
//*/
|
||||||
*/
|
//function phpbb_create_install_container($phpbb_root_path, $php_ext)
|
||||||
function phpbb_create_install_container($phpbb_root_path, $php_ext)
|
//{
|
||||||
{
|
// $other_config_path = $phpbb_root_path . 'install/update/new/config/';
|
||||||
$other_config_path = $phpbb_root_path . 'install/update/new/config/';
|
// $config_path = file_exists($other_config_path . 'services.yml') ? $other_config_path : $phpbb_root_path . 'config/';
|
||||||
$config_path = file_exists($other_config_path . 'services.yml') ? $other_config_path : $phpbb_root_path . 'config/';
|
//
|
||||||
|
// $core = new \phpbb\di\extension\core($config_path);
|
||||||
$core = new \phpbb\di\extension\core($config_path);
|
// $container = phpbb_create_container(array($core), $phpbb_root_path, $php_ext);
|
||||||
$container = phpbb_create_container(array($core), $phpbb_root_path, $php_ext);
|
//
|
||||||
|
// $container->setParameter('core.root_path', $phpbb_root_path);
|
||||||
$container->setParameter('core.root_path', $phpbb_root_path);
|
// $container->setParameter('core.adm_relative_path', $phpbb_adm_relative_path);
|
||||||
$container->setParameter('core.adm_relative_path', $phpbb_adm_relative_path);
|
// $container->setParameter('core.php_ext', $php_ext);
|
||||||
$container->setParameter('core.php_ext', $php_ext);
|
// $container->setParameter('core.table_prefix', '');
|
||||||
$container->setParameter('core.table_prefix', '');
|
//
|
||||||
|
// $container->register('dbal.conn')->setSynthetic(true);
|
||||||
$container->register('dbal.conn.driver')->setSynthetic(true);
|
//
|
||||||
|
// $container->setAlias('cache.driver', 'cache.driver.install');
|
||||||
$container->setAlias('cache.driver', 'cache.driver.install');
|
//
|
||||||
|
// $container->compile();
|
||||||
$container->compile();
|
//
|
||||||
|
// return $container;
|
||||||
return $container;
|
//}
|
||||||
}
|
//
|
||||||
|
///**
|
||||||
/**
|
//* Create updater container
|
||||||
* Create updater container
|
//*
|
||||||
*
|
//* @param string $phpbb_root_path Root path
|
||||||
* @param string $phpbb_root_path Root path
|
//* @param string $php_ext PHP Extension
|
||||||
* @param string $php_ext PHP Extension
|
//* @param array $config_path Path to config directory
|
||||||
* @param array $config_path Path to config directory
|
//* @return ContainerBuilder object (compiled)
|
||||||
* @return ContainerBuilder object (compiled)
|
//*/
|
||||||
*/
|
//function phpbb_create_update_container($phpbb_root_path, $php_ext, $config_path)
|
||||||
function phpbb_create_update_container($phpbb_root_path, $php_ext, $config_path)
|
//{
|
||||||
{
|
// $config_file = $phpbb_root_path . 'config.' . $php_ext;
|
||||||
$config_file = $phpbb_root_path . 'config.' . $php_ext;
|
// return phpbb_create_compiled_container(
|
||||||
return phpbb_create_compiled_container(
|
// $config_file,
|
||||||
$config_file,
|
// array(
|
||||||
array(
|
// new phpbb\di\extension\config($config_file),
|
||||||
new phpbb\di\extension\config($config_file),
|
// new phpbb\di\extension\core($config_path),
|
||||||
new phpbb\di\extension\core($config_path),
|
// ),
|
||||||
),
|
// array(
|
||||||
array(
|
// new phpbb\di\pass\collection_pass(),
|
||||||
new phpbb\di\pass\collection_pass(),
|
// new phpbb\di\pass\kernel_pass(),
|
||||||
new phpbb\di\pass\kernel_pass(),
|
// ),
|
||||||
),
|
// $phpbb_root_path,
|
||||||
$phpbb_root_path,
|
// $php_ext
|
||||||
$php_ext
|
// );
|
||||||
);
|
//}
|
||||||
}
|
//
|
||||||
|
///**
|
||||||
/**
|
//* Create a compiled ContainerBuilder object
|
||||||
* Create a compiled ContainerBuilder object
|
//*
|
||||||
*
|
//* @param array $extensions Array of Container extension objects
|
||||||
* @param array $extensions Array of Container extension objects
|
//* @param array $passes Array of Compiler Pass objects
|
||||||
* @param array $passes Array of Compiler Pass objects
|
//* @param string $phpbb_root_path Root path
|
||||||
* @param string $phpbb_root_path Root path
|
//* @param string $php_ext PHP Extension
|
||||||
* @param string $php_ext PHP Extension
|
//* @return ContainerBuilder object (compiled)
|
||||||
* @return ContainerBuilder object (compiled)
|
//*/
|
||||||
*/
|
//function phpbb_create_compiled_container($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext)
|
||||||
function phpbb_create_compiled_container($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext)
|
//{
|
||||||
{
|
// // Create the final container to be compiled and cached
|
||||||
// Create the final container to be compiled and cached
|
// $container = phpbb_create_container($extensions, $phpbb_root_path, $php_ext);
|
||||||
$container = phpbb_create_container($extensions, $phpbb_root_path, $php_ext);
|
//
|
||||||
|
// // Compile the container
|
||||||
// Compile the container
|
// foreach ($passes as $pass)
|
||||||
foreach ($passes as $pass)
|
// {
|
||||||
{
|
// $container->addCompilerPass($pass);
|
||||||
$container->addCompilerPass($pass);
|
// }
|
||||||
}
|
// $container->compile();
|
||||||
$container->compile();
|
//
|
||||||
|
// return $container;
|
||||||
return $container;
|
//}
|
||||||
}
|
//
|
||||||
|
///**
|
||||||
/**
|
//* Create a compiled and dumped ContainerBuilder object
|
||||||
* Create a compiled and dumped ContainerBuilder object
|
//*
|
||||||
*
|
//* @param array $extensions Array of Container extension objects
|
||||||
* @param array $extensions Array of Container extension objects
|
//* @param array $passes Array of Compiler Pass objects
|
||||||
* @param array $passes Array of Compiler Pass objects
|
//* @param string $phpbb_root_path Root path
|
||||||
* @param string $phpbb_root_path Root path
|
//* @param string $php_ext PHP Extension
|
||||||
* @param string $php_ext PHP Extension
|
//* @return ContainerBuilder object (compiled)
|
||||||
* @return ContainerBuilder object (compiled)
|
//*/
|
||||||
*/
|
//function phpbb_create_dumped_container($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext)
|
||||||
function phpbb_create_dumped_container($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext)
|
//{
|
||||||
{
|
// // Check for our cached container; if it exists, use it
|
||||||
// Check for our cached container; if it exists, use it
|
// $container_filename = phpbb_container_filename($phpbb_root_path, $php_ext);
|
||||||
$container_filename = phpbb_container_filename($phpbb_root_path, $php_ext);
|
// if (file_exists($container_filename))
|
||||||
if (file_exists($container_filename))
|
// {
|
||||||
{
|
// require($container_filename);
|
||||||
require($container_filename);
|
// return new phpbb_cache_container();
|
||||||
return new phpbb_cache_container();
|
// }
|
||||||
}
|
//
|
||||||
|
// $container = phpbb_create_compiled_container($config_file, $extensions, $passes, $phpbb_root_path, $php_ext);
|
||||||
$container = phpbb_create_compiled_container($config_file, $extensions, $passes, $phpbb_root_path, $php_ext);
|
//
|
||||||
|
// // Lastly, we create our cached container class
|
||||||
// Lastly, we create our cached container class
|
// $dumper = new PhpDumper($container);
|
||||||
$dumper = new PhpDumper($container);
|
// $cached_container_dump = $dumper->dump(array(
|
||||||
$cached_container_dump = $dumper->dump(array(
|
// 'class' => 'phpbb_cache_container',
|
||||||
'class' => 'phpbb_cache_container',
|
// 'base_class' => 'Symfony\\Component\\DependencyInjection\\ContainerBuilder',
|
||||||
'base_class' => 'Symfony\\Component\\DependencyInjection\\ContainerBuilder',
|
// ));
|
||||||
));
|
//
|
||||||
|
// file_put_contents($container_filename, $cached_container_dump);
|
||||||
file_put_contents($container_filename, $cached_container_dump);
|
//
|
||||||
|
// return $container;
|
||||||
return $container;
|
//}
|
||||||
}
|
//
|
||||||
|
///**
|
||||||
/**
|
//* Create an environment-specific ContainerBuilder object
|
||||||
* Create an environment-specific ContainerBuilder object
|
//*
|
||||||
*
|
//* If debug is enabled, the container is re-compiled every time.
|
||||||
* If debug is enabled, the container is re-compiled every time.
|
//* This ensures that the latest changes will always be reflected
|
||||||
* This ensures that the latest changes will always be reflected
|
//* during development.
|
||||||
* during development.
|
//*
|
||||||
*
|
//* Otherwise it will get the existing dumped container and use
|
||||||
* Otherwise it will get the existing dumped container and use
|
//* that one instead.
|
||||||
* that one instead.
|
//*
|
||||||
*
|
//* @param array $extensions Array of Container extension objects
|
||||||
* @param array $extensions Array of Container extension objects
|
//* @param array $passes Array of Compiler Pass objects
|
||||||
* @param array $passes Array of Compiler Pass objects
|
//* @param string $phpbb_root_path Root path
|
||||||
* @param string $phpbb_root_path Root path
|
//* @param string $php_ext PHP Extension
|
||||||
* @param string $php_ext PHP Extension
|
//* @return ContainerBuilder object (compiled)
|
||||||
* @return ContainerBuilder object (compiled)
|
//*/
|
||||||
*/
|
//function phpbb_create_dumped_container_unless_debug($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext)
|
||||||
function phpbb_create_dumped_container_unless_debug($config_file, array $extensions, array $passes, $phpbb_root_path, $php_ext)
|
//{
|
||||||
{
|
// $container_factory = defined('DEBUG_CONTAINER') ? 'phpbb_create_compiled_container' : 'phpbb_create_dumped_container';
|
||||||
$container_factory = defined('DEBUG_CONTAINER') ? 'phpbb_create_compiled_container' : 'phpbb_create_dumped_container';
|
// return $container_factory($config_file, $extensions, $passes, $phpbb_root_path, $php_ext);
|
||||||
return $container_factory($config_file, $extensions, $passes, $phpbb_root_path, $php_ext);
|
//}
|
||||||
}
|
//
|
||||||
|
///**
|
||||||
/**
|
//* Create a default ContainerBuilder object
|
||||||
* Create a default ContainerBuilder object
|
//*
|
||||||
*
|
//* Contains the default configuration of the phpBB container.
|
||||||
* Contains the default configuration of the phpBB container.
|
//*
|
||||||
*
|
//* @param array $extensions Array of Container extension objects
|
||||||
* @param array $extensions Array of Container extension objects
|
//* @param array $passes Array of Compiler Pass objects
|
||||||
* @param array $passes Array of Compiler Pass objects
|
//* @return ContainerBuilder object (compiled)
|
||||||
* @return ContainerBuilder object (compiled)
|
//*/
|
||||||
*/
|
//function phpbb_create_default_container($phpbb_root_path, $php_ext)
|
||||||
function phpbb_create_default_container($phpbb_root_path, $php_ext)
|
//{
|
||||||
{
|
// $config_file = $phpbb_root_path . 'config.' . $php_ext;
|
||||||
$config_file = $phpbb_root_path . 'config.' . $php_ext;
|
// $installed_exts = phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path);
|
||||||
$db = null;
|
//
|
||||||
$installed_exts = phpbb_bootstrap_enabled_exts($config_file, $phpbb_root_path, $db);
|
// return phpbb_create_dumped_container_unless_debug(
|
||||||
|
// $config_file,
|
||||||
$container = phpbb_create_dumped_container_unless_debug(
|
// array(
|
||||||
$config_file,
|
// new \phpbb\di\extension\config($config_file),
|
||||||
array(
|
// new \phpbb\di\extension\core($phpbb_root_path . 'config'),
|
||||||
new \phpbb\di\extension\config($config_file),
|
// new \phpbb\di\extension\ext($installed_exts),
|
||||||
new \phpbb\di\extension\core($phpbb_root_path . 'config'),
|
// ),
|
||||||
new \phpbb\di\extension\ext($installed_exts),
|
// array(
|
||||||
),
|
// new \phpbb\di\pass\collection_pass(),
|
||||||
array(
|
// new \phpbb\di\pass\kernel_pass(),
|
||||||
new \phpbb\di\pass\collection_pass(),
|
// ),
|
||||||
new \phpbb\di\pass\kernel_pass(),
|
// $phpbb_root_path,
|
||||||
),
|
// $php_ext
|
||||||
$phpbb_root_path,
|
// );
|
||||||
$php_ext
|
//}
|
||||||
);
|
//
|
||||||
|
///**
|
||||||
$container->get('dbal.conn')->set_driver($db);
|
//* Get the filename under which the dumped container will be stored.
|
||||||
|
//*
|
||||||
return $container;
|
//* @param string $phpbb_root_path Root path
|
||||||
}
|
//* @param string $php_ext PHP Extension
|
||||||
|
//* @return Path for dumped container
|
||||||
/**
|
//*/
|
||||||
* Get the filename under which the dumped container will be stored.
|
//function phpbb_container_filename($phpbb_root_path, $php_ext)
|
||||||
*
|
//{
|
||||||
* @param string $phpbb_root_path Root path
|
// $filename = str_replace(array('/', '.'), array('slash', 'dot'), $phpbb_root_path);
|
||||||
* @param string $php_ext PHP Extension
|
// return $phpbb_root_path . 'cache/container_' . $filename . '.' . $php_ext;
|
||||||
* @return Path for dumped container
|
//}
|
||||||
*/
|
|
||||||
function phpbb_container_filename($phpbb_root_path, $php_ext)
|
|
||||||
{
|
|
||||||
$filename = str_replace(array('/', '.'), array('slash', 'dot'), $phpbb_root_path);
|
|
||||||
return $phpbb_root_path . 'cache/container_' . $filename . '.' . $php_ext;
|
|
||||||
}
|
|
||||||
|
|
|
@ -56,8 +56,15 @@ function phpbb_end_update($cache, $config)
|
||||||
}
|
}
|
||||||
|
|
||||||
require($phpbb_root_path . 'includes/startup.' . $phpEx);
|
require($phpbb_root_path . 'includes/startup.' . $phpEx);
|
||||||
|
require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
|
||||||
|
|
||||||
|
// Setup class loader first
|
||||||
|
$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
|
||||||
|
$phpbb_class_loader->register();
|
||||||
|
|
||||||
|
$phpbb_config_php_handler = new \phpbb\config_php($phpbb_root_path, $phpEx);
|
||||||
|
extract($phpbb_config_php_handler->get_all());
|
||||||
|
|
||||||
include($phpbb_root_path . 'config.' . $phpEx);
|
|
||||||
if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type))
|
if (!defined('PHPBB_INSTALLED') || empty($dbms) || empty($acm_type))
|
||||||
{
|
{
|
||||||
die("Please read: <a href='../docs/INSTALL.html'>INSTALL.html</a> before attempting to update.");
|
die("Please read: <a href='../docs/INSTALL.html'>INSTALL.html</a> before attempting to update.");
|
||||||
|
@ -68,11 +75,8 @@ $phpbb_adm_relative_path = (isset($phpbb_adm_relative_path)) ? $phpbb_adm_relati
|
||||||
$phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path;
|
$phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path;
|
||||||
|
|
||||||
// Include files
|
// Include files
|
||||||
require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx);
|
|
||||||
|
|
||||||
require($phpbb_root_path . 'includes/functions.' . $phpEx);
|
require($phpbb_root_path . 'includes/functions.' . $phpEx);
|
||||||
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
|
require($phpbb_root_path . 'includes/functions_content.' . $phpEx);
|
||||||
require($phpbb_root_path . 'includes/functions_container.' . $phpEx);
|
|
||||||
|
|
||||||
require($phpbb_root_path . 'config.' . $phpEx);
|
require($phpbb_root_path . 'config.' . $phpEx);
|
||||||
require($phpbb_root_path . 'includes/constants.' . $phpEx);
|
require($phpbb_root_path . 'includes/constants.' . $phpEx);
|
||||||
|
@ -82,26 +86,12 @@ require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx);
|
||||||
// Set PHP error handler to ours
|
// Set PHP error handler to ours
|
||||||
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
|
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
|
||||||
|
|
||||||
// Setup class loader first
|
|
||||||
$phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx);
|
|
||||||
$phpbb_class_loader->register();
|
|
||||||
|
|
||||||
// Set up container (must be done here because extensions table may not exist)
|
// Set up container (must be done here because extensions table may not exist)
|
||||||
$container_extensions = array(
|
$phpbb_container_factory = new \phpbb\di\container_factory($phpbb_config_php_handler, $phpbb_root_path, $phpEx);
|
||||||
new \phpbb\di\extension\config($phpbb_root_path . 'config.' . $phpEx),
|
$phpbb_container_factory->set_use_extensions(false);
|
||||||
new \phpbb\di\extension\core($phpbb_root_path . 'config/'),
|
$phpbb_container_factory->set_use_kernel_pass(false);
|
||||||
);
|
$phpbb_container_factory->set_dump_container(false);
|
||||||
$container_passes = array(
|
$phpbb_container = $phpbb_container_factory->get_container();
|
||||||
new \phpbb\di\pass\collection_pass(),
|
|
||||||
);
|
|
||||||
$phpbb_container = phpbb_create_container($container_extensions, $phpbb_root_path, $phpEx);
|
|
||||||
|
|
||||||
// Compile the container
|
|
||||||
foreach ($container_passes as $pass)
|
|
||||||
{
|
|
||||||
$phpbb_container->addCompilerPass($pass);
|
|
||||||
}
|
|
||||||
$phpbb_container->compile();
|
|
||||||
|
|
||||||
// set up caching
|
// set up caching
|
||||||
$cache = $phpbb_container->get('cache');
|
$cache = $phpbb_container->get('cache');
|
||||||
|
|
|
@ -35,6 +35,13 @@ class config_php
|
||||||
*/
|
*/
|
||||||
protected $config_data = array();
|
protected $config_data = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The path to the config file. (Defaults: $phpbb_root_path . 'config.' . $php_ext)
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $config_file;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
|
@ -45,6 +52,18 @@ class config_php
|
||||||
{
|
{
|
||||||
$this->phpbb_root_path = $phpbb_root_path;
|
$this->phpbb_root_path = $phpbb_root_path;
|
||||||
$this->php_ext = $php_ext;
|
$this->php_ext = $php_ext;
|
||||||
|
$this->config_file = $this->phpbb_root_path . 'config.' . $this->php_ext;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the path to the config file.
|
||||||
|
*
|
||||||
|
* @param string $config_file
|
||||||
|
*/
|
||||||
|
public function set_config_file($config_file)
|
||||||
|
{
|
||||||
|
$this->config_file = $config_file;
|
||||||
|
$this->config_loaded = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -87,12 +106,12 @@ class config_php
|
||||||
{
|
{
|
||||||
if (!$this->config_loaded)
|
if (!$this->config_loaded)
|
||||||
{
|
{
|
||||||
if (file_exists($this->phpbb_root_path . 'config.' . $this->php_ext))
|
if (file_exists($this->config_file))
|
||||||
{
|
{
|
||||||
$defined_vars = null;
|
$defined_vars = null;
|
||||||
$defined_vars = get_defined_vars();
|
$defined_vars = get_defined_vars();
|
||||||
|
|
||||||
require($this->phpbb_root_path . 'config.' . $this->php_ext);
|
require($this->config_file);
|
||||||
$this->config_data = array_diff_key(get_defined_vars(), $defined_vars);
|
$this->config_data = array_diff_key(get_defined_vars(), $defined_vars);
|
||||||
|
|
||||||
$this->config_loaded = true;
|
$this->config_loaded = true;
|
||||||
|
|
|
@ -70,6 +70,13 @@ class container_factory
|
||||||
*/
|
*/
|
||||||
protected $use_custom_pass = true;
|
protected $use_custom_pass = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates if the kernel compile pass have to be used (default to true).
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
protected $use_kernel_pass = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates if a dump container should be used (default to true).
|
* Indicates if a dump container should be used (default to true).
|
||||||
*
|
*
|
||||||
|
@ -143,7 +150,11 @@ class container_factory
|
||||||
if ($this->use_custom_pass)
|
if ($this->use_custom_pass)
|
||||||
{
|
{
|
||||||
$this->container->addCompilerPass(new \phpbb\di\pass\collection_pass());
|
$this->container->addCompilerPass(new \phpbb\di\pass\collection_pass());
|
||||||
$this->container->addCompilerPass(new \phpbb\di\pass\kernel_pass());
|
|
||||||
|
if ($this->use_kernel_pass)
|
||||||
|
{
|
||||||
|
$this->container->addCompilerPass(new \phpbb\di\pass\kernel_pass());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->inject_custom_parameters();
|
$this->inject_custom_parameters();
|
||||||
|
@ -179,11 +190,21 @@ class container_factory
|
||||||
*
|
*
|
||||||
* @param bool $use_custom_pass
|
* @param bool $use_custom_pass
|
||||||
*/
|
*/
|
||||||
public function set_use_customPass($use_custom_pass)
|
public function set_use_custom_pass($use_custom_pass)
|
||||||
{
|
{
|
||||||
$this->use_custom_pass = $use_custom_pass;
|
$this->use_custom_pass = $use_custom_pass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if the kernel compile pass have to be used.
|
||||||
|
*
|
||||||
|
* @param bool $use_kernel_pass
|
||||||
|
*/
|
||||||
|
public function set_use_kernel_pass($use_kernel_pass)
|
||||||
|
{
|
||||||
|
$this->use_kernel_pass = $use_kernel_pass;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set if the php config file should be injecting into the container.
|
* Set if the php config file should be injecting into the container.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue