在 CakePHP 以外的程式存取 CakePHP 的 Session

edited 十月 2013 in CakePHP
如果你需要把 CakePHP 跟其他程式混在一起使用,也許你會用的到;只是這個方式並沒有經過大量的測試,不確定適用於所有情況。 :)
<?
if (!defined('DS')) {
    define('DS', DIRECTORY_SEPARATOR);
}
if (!defined('ROOT')) {
    define('ROOT', dirname(dirname(dirname(__FILE__))));
}
if (!defined('APP_DIR')) {
    define('APP_DIR', basename(dirname(dirname(__FILE__))));
}
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
    define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . APP_DIR);
}

if (!defined('WEBROOT_DIR')) {
    define('WEBROOT_DIR', 'webroot');
}
if (!defined('WWW_ROOT')) {
    define('WWW_ROOT', ROOT . DS . WEBROOT_DIR . DS);
}
if (!defined('PATH_SEPARATOR')) {
    if (OS_WINDOWS) {
        define('PATH_SEPARATOR', ';');
    } else {
        define('PATH_SEPARATOR', ':');
    }
}
if (!defined('CORE_PATH')) {
    if (function_exists('ini_set')) {
        ini_set('include_path', CAKE_CORE_INCLUDE_PATH . PATH_SEPARATOR . ROOT . DS . APP_DIR . DS . PATH_SEPARATOR . ini_get('include_path'));
        define('APP_PATH', null);
        define('CORE_PATH', null);
    } else {
        define('APP_PATH', ROOT . DS . APP_DIR . DS);
        define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
    }
}
class Cache {
    function read() {}
    function config() {}
    function write() {}
}
require CORE_PATH . 'cake' . DS . 'basics.php';
require CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php';
require LIBS . 'object.php';
require LIBS . 'configure.php';
require LIBS . 'router.php';
require LIBS . 'session.php';
require LIBS . 'string.php';
$session = new CakeSession;
$session->start();
pr($session->read());

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=3455

評論

  • edited 六月 2008
    又被打敗了...在 32 位元環境 OK ,在 64 位元環境就出現 Segmentation fault ...
  • edited 六月 2008
    恩...是我誤會了,上面這個解決方式,只要把 cakephp 的 debug 設定為 0 就會出現 Segmentation fault ,解決的方式就是在
    require LIBS . 'string.php';
    
    下面加一行
    require LIBS . 'folder.php';
    

    希望不會再有需要鑽研核心程式碼的必要...^^||
Sign In or Register to comment.