Вход Регистрация
Файл: concrete5.7.5.6/concrete/vendor/zendframework/zend-serializer/src/Adapter/PhpCode.php
Строк: 63
<?php
/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link      http://github.com/zendframework/zf2 for the canonical source repository
 * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
 * @license   http://framework.zend.com/license/new-bsd New BSD License
 */

namespace ZendSerializerAdapter;

use 
ZendSerializerException;
use 
ZendStdlibErrorHandler;

class 
PhpCode extends AbstractAdapter
{
    
/**
     * Serialize PHP using var_export
     *
     * @param  mixed $value
     * @return string
     */
    
public function serialize($value)
    {
        return 
var_export($valuetrue);
    }

    
/**
     * Deserialize PHP string
     *
     * Warning: this uses eval(), and should likely be avoided.
     *
     * @param  string $code
     * @return mixed
     * @throws ExceptionRuntimeException on eval error
     */
    
public function unserialize($code)
    {
        
ErrorHandler::start(E_ALL);
        
$ret  null;
        
// This suppression is due to the fact that the ErrorHandler cannot
        // catch syntax errors, and is intentionally left in place.
        
$eval = @eval('$ret=' $code ';');
        
$err  ErrorHandler::stop();

        if (
$eval === false || $err) {

            
$msg 'eval failed';

            
// Error handler doesn't catch syntax errors
            
if ($eval === false) {
                
$lastErr error_get_last();
                
$msg    .= ': ' $lastErr['message'];
            }

            throw new 
ExceptionRuntimeException($msg0$err);
        }

        return 
$ret;
    }
}
Онлайн: 0
Реклама