to allow installing api or EGroupware without phpgwapi, old exceptions which we have to extend in order allow old apps to catch exceptions thrown from new api, have to reside in api/inc and get autoloaded

This commit is contained in:
Ralf Becker 2016-05-02 16:57:50 +00:00
parent 5db786a7ae
commit 834cc466f5
14 changed files with 87 additions and 43 deletions

View File

@ -0,0 +1,24 @@
<?php
/**
* EGroupware API - old deprecated exceptions
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package api
* @subpackage accounts
* @access public
* @version $Id$
*/
use EGroupware\Api;
/**
* Exception thrown by the egw_db class for everything not covered by extended classed below
*
* New Db\Exception has to extend deprecated egw_exception_db to allow legacy code
* to catch exceptions thrown by Api\Db class!
*
* @deprecated use Api\Db\Exception
*/
class egw_exception_db extends Api\Exception {}

View File

@ -0,0 +1,24 @@
<?php
/**
* EGroupware API - old deprecated exceptions
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package api
* @subpackage accounts
* @access public
* @version $Id$
*/
use EGroupware\Api;
/**
* Classic invalid SQL error
*
* New InvalidSql exception has to extend deprecated egw_exception_db_invalid_sql
* to allow legacy code to catch exceptions thrown by Api\Db!
*
* @deprecated use Api\Db\Exception\InvalidSql
*/
class egw_exception_db_invalid_sql extends Api\Db\Exception {}

View File

@ -0,0 +1,24 @@
<?php
/**
* EGroupware API - old deprecated exceptions
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @package api
* @subpackage accounts
* @access public
* @version $Id$
*/
use EGroupware\Api;
/**
* Base class for all exceptions about missing permissions
*
* New NoPermisison excpetion has to extend deprecated egw_exception_no_permission
* to allow legacy code to catch them!
*
* @deprecated use Api\Exception\NoPermission
*/
class egw_exception_no_permission extends Api\Exception {}

View File

@ -148,7 +148,7 @@ class Sql
$this->table.'.account_id='.abs($account_id), $this->table.'.account_id='.abs($account_id),
__LINE__, __FILE__, false, '', false, 0, $join); __LINE__, __FILE__, false, '', false, 0, $join);
} }
catch (egw_exception_db $e) { catch (Api\Db\Exception $e) {
unset($e); unset($e);
} }
@ -261,7 +261,7 @@ class Sql
} }
} }
// ignore not (yet) existing mailaccounts table (does NOT work in PostgreSQL, because of transaction!) // ignore not (yet) existing mailaccounts table (does NOT work in PostgreSQL, because of transaction!)
catch (egw_exception_db $e) { catch (Api\Db\Exception $e) {
unset($e); unset($e);
} }
} }

View File

@ -27,7 +27,7 @@ class ItemPicker extends Etemplate\Widget
* Constructor * Constructor
* *
* @param string|XMLReader $xml string with xml or XMLReader positioned on the element to construct * @param string|XMLReader $xml string with xml or XMLReader positioned on the element to construct
* @throws egw_exception_wrong_parameter * @throws Api\Exception\WrongParameter
*/ */
public function __construct($xml = '') public function __construct($xml = '')
{ {

View File

@ -77,7 +77,7 @@ class Select extends Etemplate\Widget
* Constructor * Constructor
* *
* @param string|XMLReader $xml string with xml or XMLReader positioned on the element to construct * @param string|XMLReader $xml string with xml or XMLReader positioned on the element to construct
* @throws egw_exception_wrong_parameter * @throws Api\Exception\WrongParameter
*/ */
public function __construct($xml = '') public function __construct($xml = '')
{ {

View File

@ -30,7 +30,7 @@ class Taglist extends Etemplate\Widget
* Overrides parent to check for $xml first, prevents errors when instanciated without (via AJAX) * Overrides parent to check for $xml first, prevents errors when instanciated without (via AJAX)
* *
* @param string|XMLReader $xml string with xml or XMLReader positioned on the element to construct * @param string|XMLReader $xml string with xml or XMLReader positioned on the element to construct
* @throws egw_exception_wrong_parameter * @throws Api\Exception\WrongParameter
*/ */
public function __construct($xml = '') public function __construct($xml = '')
{ {

View File

@ -32,7 +32,7 @@ class Textbox extends Etemplate\Widget
* Constructor * Constructor
* *
* @param string|XMLReader $xml string with xml or XMLReader positioned on the element to construct * @param string|XMLReader $xml string with xml or XMLReader positioned on the element to construct
* @throws egw_exception_wrong_parameter * @throws Api\Exception\WrongParameter
*/ */
public function __construct($xml) public function __construct($xml)
{ {

View File

@ -6403,11 +6403,11 @@ class Mail
} }
elseif (is_uploaded_file($_formData['file'])) elseif (is_uploaded_file($_formData['file']))
{ {
move_uploaded_file($_formData['file'], $GLOBALS['egw_info']['server']['temp_dir'].SEP.$tmpFileName); // requirement for safe_mode! move_uploaded_file($_formData['file'], $GLOBALS['egw_info']['server']['temp_dir'].'/'.$tmpFileName); // requirement for safe_mode!
} }
else else
{ {
rename($_formData['file'], $GLOBALS['egw_info']['server']['temp_dir'].SEP.$tmpFileName); rename($_formData['file'], $GLOBALS['egw_info']['server']['temp_dir'].'/'.$tmpFileName);
} }
} else { } else {
//error_log("Import of message ".$_formData['file']." failes to meet basic restrictions"); //error_log("Import of message ".$_formData['file']." failes to meet basic restrictions");
@ -6808,7 +6808,7 @@ class Mail
$message = Link::get_data(parse_url($tmpFileName, PHP_URL_HOST), true); $message = Link::get_data(parse_url($tmpFileName, PHP_URL_HOST), true);
break; break;
default: default:
$tmpFileName = $GLOBALS['egw_info']['server']['temp_dir'].SEP.basename($tmpFileName); $tmpFileName = $GLOBALS['egw_info']['server']['temp_dir'].'/'.basename($tmpFileName);
break; break;
} }
if (!isset($message)) $message = fopen($tmpFileName, 'r'); if (!isset($message)) $message = fopen($tmpFileName, 'r');

View File

@ -195,7 +195,7 @@ class MimeMagic
} }
mt_srand(time()); mt_srand(time());
$filename = $GLOBALS['egw_info']['server']['temp_dir'] . SEP $filename = $GLOBALS['egw_info']['server']['temp_dir'] . '/'
. md5( time() + mt_rand() ) . '.tmp'; . md5( time() + mt_rand() ) . '.tmp';
$fp = @fopen($filename, 'ab'); $fp = @fopen($filename, 'ab');

View File

@ -385,8 +385,8 @@ class Sharing
* @param string $name filename to use for $mode==self::LINK, default basename of $path * @param string $name filename to use for $mode==self::LINK, default basename of $path
* @param string|array $recipients one or more recipient email addresses * @param string|array $recipients one or more recipient email addresses
* @param array $extra =array() extra data to store * @param array $extra =array() extra data to store
* @throw egw_exception_not_found if $path not found * @throw Api\Exception\NotFound if $path not found
* @throw egw_excpetion_assertion_failed if user temp. directory does not exist and can not be created * @throw Api\Exception\AssertionFailed if user temp. directory does not exist and can not be created
* @return array with share data, eg. value for key 'share_token' * @return array with share data, eg. value for key 'share_token'
*/ */
public static function create($path, $mode, $name, $recipients, $extra=array()) public static function create($path, $mode, $name, $recipients, $extra=array())

View File

@ -69,6 +69,8 @@ spl_autoload_register(function($class)
$app = array_shift($components); $app = array_shift($components);
// classes using the new naming schema app_class_name, eg. admin_cmd // classes using the new naming schema app_class_name, eg. admin_cmd
if (file_exists($file = EGW_INCLUDE_ROOT.'/'.$app.'/inc/class.'.$class.'.inc.php') || if (file_exists($file = EGW_INCLUDE_ROOT.'/'.$app.'/inc/class.'.$class.'.inc.php') ||
// compatibility class in new eGW api dir, eg. exceptions
file_exists($file = EGW_INCLUDE_ROOT.'/api/inc/class.'.$class.'.inc.php') ||
// classes using the new naming schema app_class_name, eg. admin_cmd // classes using the new naming schema app_class_name, eg. admin_cmd
isset($components[0]) && file_exists($file = EGW_INCLUDE_ROOT.'/'.$app.'/inc/class.'.$app.'_'.$components[0].'.inc.php') || isset($components[0]) && file_exists($file = EGW_INCLUDE_ROOT.'/'.$app.'/inc/class.'.$app.'_'.$components[0].'.inc.php') ||
// classes with an underscore in their name // classes with an underscore in their name

View File

@ -90,7 +90,7 @@ function _egw_log_exception($e,&$headline=null)
function egw_exception_handler($e) function egw_exception_handler($e)
{ {
// handle redirects without logging // handle redirects without logging
if (is_a($e, 'egw_exception_redirect')) if ($e instanceof Api\Exception\Redirect)
{ {
egw::redirect($e->url, $e->app); egw::redirect($e->url, $e->app);
} }

View File

@ -26,16 +26,6 @@ use EGroupware\Api;
*/ */
class egw_exception extends Api\Exception {} class egw_exception extends Api\Exception {}
/**
* Base class for all exceptions about missing permissions
*
* New NoPermisison excpetion has to extend deprecated egw_exception_no_permission
* to allow legacy code to catch them!
*
* @deprecated use Api\Exception\NoPermission
*/
class egw_exception_no_permission extends Api\Exception {}
/** /**
* A record or application entry was not found for the given id * A record or application entry was not found for the given id
* *
@ -68,26 +58,6 @@ class egw_exception_wrong_parameter extends Api\Exception\WrongParameter {}
*/ */
class egw_exception_wrong_userinput extends Api\Exception\WrongUserInput {} class egw_exception_wrong_userinput extends Api\Exception\WrongUserInput {}
/**
* Exception thrown by the egw_db class for everything not covered by extended classed below
*
* New Db\Exception has to extend deprecated egw_exception_db to allow legacy code
* to catch exceptions thrown by Api\Db class!
*
* @deprecated use Api\Db\Exception
*/
class egw_exception_db extends Api\Exception {}
/**
* Classic invalid SQL error
*
* New InvalidSql exception has to extend deprecated egw_exception_db_invalid_sql
* to allow legacy code to catch exceptions thrown by Api\Db!
*
* @deprecated use Api\Db\Exception\InvalidSql
*/
class egw_exception_db_invalid_sql extends Api\Db\Exception {}
/** /**
* Allow callbacks to request a redirect * Allow callbacks to request a redirect
* *