Remove use of databox singleton

This commit is contained in:
Romain Neutron
2012-07-26 12:28:41 +02:00
parent 0deed1fc7b
commit fb95aad718
20 changed files with 56 additions and 57 deletions

View File

@@ -74,7 +74,7 @@ return call_user_func(
$app->get('/datafiles/{sbas_id}/{record_id}/{subdef}/', function($sbas_id, $record_id, $subdef, PhraseaApplication $app) use ($session, $deliver_content) {
$databox = \databox::get_instance((int) $sbas_id);
$databox = $app['phraseanet.appbox']->get_databox((int) $sbas_id);
$record = new \record_adapter($sbas_id, $record_id);
if ( ! $session->is_authenticated()) {
@@ -140,7 +140,7 @@ return call_user_func(
$app->get('/permalink/v1/{label}/{sbas_id}/{record_id}/{key}/{subdef}/view/'
, function($label, $sbas_id, $record_id, $key, $subdef, PhraseaApplication $app) {
$databox = \databox::get_instance((int) $sbas_id);
$databox = $app['phraseanet.appbox']->get_databox((int) $sbas_id);
$record = \media_Permalink_Adapter::challenge_token($databox, $key, $record_id, $subdef);
@@ -161,7 +161,7 @@ return call_user_func(
$app->get('/permalink/v1/{label}/{sbas_id}/{record_id}/{key}/{subdef}/'
, function($label, $sbas_id, $record_id, $key, $subdef) use ($app, $session, $deliver_content) {
$databox = \databox::get_instance((int) $sbas_id);
$databox = $app['phraseanet.appbox']->get_databox((int) $sbas_id);
$record = \media_Permalink_Adapter::challenge_token($databox, $key, $record_id, $subdef);
if ( ! ($record instanceof \record_adapter))
throw new \Exception('bad luck');

View File

@@ -108,7 +108,8 @@ class MetaField implements Attribute
}
try {
$databox = \databox::get_instance($datas['sbas_id']);
$appbox = \appbox::get_instance(\bootstrap::getCore());
$databox = $appbox->get_databox($datas['sbas_id']);
$field = $databox->get_meta_structure()->get_element($datas['id']);
} catch (\Exception_NotFound $e) {
throw new \InvalidArgumentException('Field does not exist anymore');

View File

@@ -40,7 +40,7 @@ class BorderManager extends ServiceAbstract
*/
protected function init()
{
$appbox = \appbox::get_instance($this->core);
$borderManager = new Border\Manager($this->core['EM'], $this->core['file-system']);
if ($this->core['pdf-to-text']) {
@@ -86,7 +86,7 @@ class BorderManager extends ServiceAbstract
$databoxes = array();
foreach ($checker['databoxes'] as $sbas_id) {
try {
$databoxes[] = \databox::get_instance($sbas_id);
$databoxes[] = $appbox->get_databox($sbas_id);
} catch (\Exception $e) {
throw new \InvalidArgumentException('Invalid databox option');
}

View File

@@ -557,8 +557,8 @@ class appbox extends base
$ret = array();
foreach ($this->retrieve_sbas_ids() as $sbas_id) {
try {
$ret[$sbas_id] = databox::get_instance($sbas_id);
} catch (Exception $e) {
$ret[$sbas_id] = new \databox($sbas_id);
} catch (\Exception_DataboxNotFound $e) {
}
}

View File

@@ -370,7 +370,8 @@ class collection implements cache_cacheableInterface
if ( ! $sbas_id || ! $coll_id) {
throw new Exception_Databox_CollectionNotFound(sprintf("Collection could not be found"));
}
$databox = databox::get_instance($sbas_id);
$appbox = \appbox::get_instance(\bootstrap::getCore());
$databox = $appbox->get_databox($sbas_id);
return self::get_from_coll_id($databox, $coll_id);
}

View File

@@ -100,13 +100,11 @@ class databox extends base
protected $connection;
protected $registry;
/**
*
* @param int $sbas_id
* @return databox
*/
protected function __construct($sbas_id)
public function __construct($sbas_id)
{
assert(is_int($sbas_id));
assert($sbas_id > 0);
$this->registry = registry::get_instance();
$this->connection = connection::getPDOConnection($sbas_id);
$this->Core = \bootstrap::getCore();
@@ -187,22 +185,6 @@ class databox extends base
return phrasea::sbas_names($this->get_sbas_id());
}
/**
*
* @param int $sbas_id
* @return databox
*/
public static function get_instance($sbas_id)
{
assert(is_int($sbas_id));
assert($sbas_id > 0);
if ( ! array_key_exists($sbas_id, self::$_instances)) {
self::$_instances[$sbas_id] = new self($sbas_id);
}
return self::$_instances[$sbas_id];
}
/**
*
* @return databox_status

View File

@@ -856,7 +856,8 @@ class databox_field implements cache_cacheableInterface
*/
public function __wakeup()
{
$databox = databox::get_instance($this->sbas_id);
$appbox = \appbox::get_instance(\bootstrap::getCore());
$databox = $appbox->get_databox($this->sbas_id);
$this->set_databox($databox);
return;

View File

@@ -61,6 +61,7 @@ class databox_status
$path = $url = false;
$appbox = \appbox::get_instance(\bootstrap::getCore());
$sbas_params = phrasea::sbas_params();
$registry = registry::get_instance();
@@ -71,7 +72,7 @@ class databox_status
$path = $this->path = $registry->get('GV_RootPath') . "config/status/" . urlencode($sbas_params[$sbas_id]["host"]) . "-" . urlencode($sbas_params[$sbas_id]["port"]) . "-" . urlencode($sbas_params[$sbas_id]["dbname"]);
$url = $this->url = "/custom/status/" . urlencode($sbas_params[$sbas_id]["host"]) . "-" . urlencode($sbas_params[$sbas_id]["port"]) . "-" . urlencode($sbas_params[$sbas_id]["dbname"]);
$databox = databox::get_instance((int) $sbas_id);
$databox = $appbox->get_databox((int) $sbas_id);
$xmlpref = $databox->get_structure();
$sxe = simplexml_load_string($xmlpref);
@@ -244,6 +245,7 @@ class databox_status
public static function deleteStatus($sbas_id, $bit)
{
$core = \bootstrap::getCore();
$appbox = \appbox::get_instance($core);
$user = $core->getAuthenticatedUser();
@@ -256,7 +258,7 @@ class databox_status
if (isset($status[$bit])) {
$connbas = connection::getPDOConnection($sbas_id);
$databox = databox::get_instance((int) $sbas_id);
$databox = $appbox->get_databox((int) $sbas_id);
$doc = $databox->get_dom_structure();
if ($doc) {

View File

@@ -42,8 +42,9 @@ class module_console_fieldsDelete extends Command
protected function doExecute(InputInterface $input, OutputInterface $output)
{
$appbox = \appbox::get_instance(\bootstrap::getCore());
try {
$databox = \databox::get_instance((int) $input->getArgument('sbas_id'));
$databox = $appbox->get_databox((int) $input->getArgument('sbas_id'));
} catch (\Exception $e) {
$output->writeln("<error>Invalid databox id </error>");

View File

@@ -54,8 +54,9 @@ class module_console_fieldsMerge extends Command
{
$output->writeln("");
$appbox = \appbox::get_instance(\bootstrap::getCore());
try {
$databox = \databox::get_instance((int) $input->getArgument('sbas_id'));
$databox = $appbox->get_databox((int) $input->getArgument('sbas_id'));
} catch (\Exception $e) {
$output->writeln("<error>Invalid databox id </error>");

View File

@@ -45,8 +45,9 @@ class module_console_fieldsRename extends Command
{
$new_name = $input->getArgument('name');
$appbox = \appbox::get_instance(\bootstrap::getCore());
try {
$databox = \databox::get_instance((int) $input->getArgument('sbas_id'));
$databox = $appbox->get_databox((int) $input->getArgument('sbas_id'));
} catch (\Exception $e) {
$output->writeln("<error>Invalid databox id </error>");

View File

@@ -57,7 +57,7 @@ class module_console_sphinxGenerateSuggestion extends Command
$tmp_file = $registry->get('GV_RootPath') . 'tmp/dict' . $index . '.txt';
$databox = databox::get_instance($sbas_id);
$databox = $appbox->get_databox($sbas_id);
$output->writeln("process Databox " . $databox->get_viewname() . " / $index\n");

View File

@@ -290,7 +290,8 @@ class module_report_activity extends module_report
$filter = $s->getFilters();
$conn = $s->getConnBas();
$databox = \databox::get_instance($this->sbas_id);
$appbox = \appbox::get_instance(\bootstrap::getCore());
$databox = $appbox->get_databox($this->sbas_id);
$params = array();
$date_filter = $filter->getDateFilter();

View File

@@ -210,7 +210,8 @@ class module_report_download extends module_report
public static function getTopDl($dmin, $dmax, $sbas_id, $list_coll_id)
{
$databox = \databox::get_instance((int) $sbas_id);
$appbox = \appbox::get_instance(\bootstrap::getCore());
$databox = $appbox->get_databox((int) $sbas_id);
$conn = $databox->get_connection();
$registry = $databox->get_registry();

View File

@@ -79,7 +79,7 @@ class p4file
}
$sbas_id = phrasea::sbasFromBas($base_id);
$databox = databox::get_instance($sbas_id);
$databox = $appbox->get_databox($sbas_id);
$collection = collection::get_from_base_id($base_id);
$collprefs = simplexml_load_string($collection->get_prefs());
@@ -131,13 +131,14 @@ class p4file
throw new Exception('This method is deprecated');
$core = \bootstrap::getCore();
$appbox = \appbox::get_instance($core);
$checks = array();
$system_file = new system_file($filename);
$doctype = $system_file->get_phrasea_type();
$databox = databox::get_instance($sbas_id);
$databox = $appbox->get_databox($sbas_id);
if ($baseprefs = $databox->get_sxml_structure()) {

View File

@@ -427,7 +427,7 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract
if ($this->results[$sbas_id])
$nbanswers += $this->results[$sbas_id]["nbanswers"];
$logger = $session->get_logger(databox::get_instance($sbas_id));
$logger = $session->get_logger($appbox->get_databox($sbas_id));
$conn2 = connection::getPDOConnection($sbas_id);
@@ -558,7 +558,6 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract
if ( ! isset($this->queries[$databox->get_sbas_id()]))
continue;
//$databox = databox::get_instance($sbas_id);
$sbas_id = $databox->get_sbas_id();
$this->colls[$sbas_id] = array();
foreach ($databox->get_collections() as $coll) {

View File

@@ -97,9 +97,10 @@ class searchEngine_adapter_sphinx_engine extends searchEngine_adapter_abstract i
$filters = array();
$appbox = \appbox::get_instance(\bootstrap::getCore());
foreach ($sbas_ids as $sbas_id) {
$databox = databox::get_instance($sbas_id);
$fields = $databox->get_meta_structure();
$fields = $appbox->get_databox($sbas_id)->get_meta_structure();
foreach ($fields as $field) {
if ( ! in_array($field->get_id(), $options->get_fields()))
@@ -136,12 +137,12 @@ class searchEngine_adapter_sphinx_engine extends searchEngine_adapter_abstract i
$this->sphinx->SetFilter('crc_struct_id', $filters);
}
$appbox = \appbox::get_instance(\bootstrap::getCore());
/**
* @todo : enhance : check status better
*/
foreach ($sbas_ids as $sbas_id) {
$databox = databox::get_instance($sbas_id);
$s_status = $databox->get_statusbits();
$s_status = $appbox->get_databox($sbas_id)->get_statusbits();
$status_opts = $options->get_status();
foreach ($s_status as $n => $status) {
if ( ! array_key_exists($n, $status_opts))

View File

@@ -83,9 +83,10 @@ abstract class task_databoxAbstract extends task_abstract
$this->sbas_id = (int) $row['sbas_id'];
$this->log('This task works now on ' . phrasea::sbas_names($this->sbas_id));
$appbox = \appbox::get_instance(\bootstrap::getCore());
try {
// get the records to process
$databox = databox::get_instance((int) $row['sbas_id']);
$databox = $appbox->get_databox((int) $row['sbas_id']);
} catch (Exception $e) {
$this->log(sprintf('Warning : can\' connect to sbas(%s)', $row['sbas_id']));
continue;

View File

@@ -419,7 +419,8 @@ class task_period_RecordMover extends task_appboxAbstract
protected function processOneContent(appbox $appbox, Array $row)
{
$logsql = (int) ($this->sxTaskSettings->logsql) > 0;
$dbox = databox::get_instance($row['sbas_id']);
$appbox = \appbox::get_instance(\bootstrap::getCore());
$databox = $appbox->get_databox($row['sbas_id']);
$rec = new record_adapter($row['sbas_id'], $row['record_id']);
switch ($row['action']) {
@@ -427,7 +428,7 @@ class task_period_RecordMover extends task_appboxAbstract
// change collection ?
if (array_key_exists('coll', $row)) {
$coll = collection::get_from_coll_id($dbox, $row['coll']);
$coll = collection::get_from_coll_id($databox, $row['coll']);
$rec->move_to_collection($coll, $appbox);
if ($logsql) {
$this->log(sprintf("on sbas %s move rid %s to coll %s \n", $row['sbas_id'], $row['record_id'], $coll->get_coll_id()));

View File

@@ -270,7 +270,8 @@ class task_period_archive extends task_abstract
{
$this->debug = false;
$conn = \connection::getPDOConnection();
$appbox = \appbox::get_instance(\bootstrap::getCore());
$conn = $appbox->get_connection();
$this->sxTaskSettings = simplexml_load_string($this->settings);
@@ -283,7 +284,7 @@ class task_period_archive extends task_abstract
return 'tostop';
}
$databox = \databox::get_instance($this->sbas_id);
$databox = $appbox->get_databox($this->sbas_id);
$this->TColls = array();
$collection = null;
@@ -507,8 +508,9 @@ class task_period_archive extends task_abstract
{
clearstatcache();
$appbox = \appbox::get_instance(\bootstrap::getCore());
connection::getPDOConnection();
\databox::get_instance($this->sbas_id)->get_connection();
$appbox->get_databox($this->sbas_id)->get_connection();
$path_in = p4string::delEndSlash(trim((string) ($this->sxTaskSettings->hotfolder)));
if (false === $this->filesystem->exists($path_in . "/.phrasea.xml")) {
@@ -1414,6 +1416,7 @@ class task_period_archive extends task_abstract
*/
private function archiveGrp(\DOMDocument $dom, \DOMElement $node, $path, $path_archived, $path_error, array &$nodesToDel)
{
$appbox = \appbox::get_instance(\bootstrap::getCore());
$xpath = new DOMXPath($dom);
// grp folders stay in place
@@ -1466,7 +1469,7 @@ class task_period_archive extends task_abstract
try {
$databox = \databox::get_instance($this->sbas_id);
$databox = $appbox->get_databox($this->sbas_id);
$collection = collection::get_from_coll_id($databox, (int) $cid);
if ($captionFileName === null) {
$story = $this->createStory($collection, $path . '/' . $representationFileName, null);
@@ -1838,6 +1841,7 @@ class task_period_archive extends task_abstract
{
$ret = false;
$appbox = \appbox::get_instance(\bootstrap::getCore());
$file = $node->getAttribute('name');
$cid = $node->getAttribute('cid');
$captionFileName = $captionFileNode ? $captionFileNode->getAttribute('name') : null;
@@ -1868,7 +1872,7 @@ class task_period_archive extends task_abstract
}
try {
$databox = \databox::get_instance($this->sbas_id);
$databox = $appbox->get_databox($this->sbas_id);
$collection = collection::get_from_coll_id($databox, (int) $cid);
if ($captionFileName === null) {