Example #1
0
 public function sqlite(UnitTester $I)
 {
     $I->wantToTest("Model validation by using SQLite as RDBMS");
     /** @var \Phalcon\Di\FactoryDefault $di */
     $di = Di::getDefault();
     $connection = $di->getShared('db');
     $di->remove('db');
     $di->setShared('db', function () {
         $connection = new Sqlite(['dbname' => TEST_DB_SQLITE_NAME]);
         /** @var \PDO $pdo */
         $pdo = $connection->getInternalHandler();
         $pdo->sqliteCreateFunction('now', function () {
             return date('Y-m-d H:i:s');
         });
         return $connection;
     });
     Di::setDefault($di);
     $this->success($I);
     $this->presenceOf($I);
     $this->email($I);
     $this->emailWithDot($I);
     $this->exclusionIn($I);
     $this->inclusionIn($I);
     $this->uniqueness1($I);
     $this->uniqueness2($I);
     $this->regex($I);
     $this->tooLong($I);
     $this->tooShort($I);
     $di->remove('db');
     $di->setShared('db', $connection);
 }
Example #2
0
 public function rateAction()
 {
     // Getting parameters from the request
     $ideaId = $this->request->get('id');
     $rating = $this->request->get('rating');
     // Building database connection
     $db = new Sqlite(array('dbname' => '/tmp/idea.sqlite'));
     // Finding the idea in the database
     $sqlStatement = 'SELECT * FROM idea WHERE id = ?';
     $row = $db->query($sqlStatement, array($ideaId))->fetch();
     if (!$row) {
         throw new \Exception('Idea does not exist');
     }
     // Building the idea from the database
     $idea = new Idea();
     $idea->setId($row['id']);
     $idea->setTitle($row['title']);
     $idea->setDescription($row['description']);
     $idea->setRating($row['rating']);
     $idea->setVotes($row['votes']);
     $idea->setAuthor($row['author']);
     // Add user rating
     $idea->addRating($rating);
     // Update the idea and save it to the database
     $fields = array('votes', 'rating');
     $values = array($idea->getVotes(), $idea->getRating());
     $where = array('conditions' => 'id = ?', 'bind' => array($ideaId));
     $db->update('idea', $fields, $values, $where);
     // Redirect to view idea page
     $this->dispatcher->forward(array('controller' => 'idea', 'action' => 'index', 'params' => array('id' => $ideaId)));
 }
Example #3
0
 protected function getBackend($prefix = '')
 {
     $frontend = new CacheFrontend(['lifetime' => 10]);
     $connection = new DbAdapter(['dbname' => ':memory:']);
     // Make table structure
     $connection->getInternalHandler()->exec('CREATE TABLE "cache_data" ("key_name" TEXT PRIMARY KEY, "data" TEXT, "lifetime" INTEGER)');
     return new CacheBackend($frontend, ['db' => $connection, 'table' => 'cache_data', 'prefix' => $prefix]);
 }
 public function __construct(array $descriptor = NULL)
 {
     $db_file = '/tmp/amazingdreams-auth-unittest.db';
     if (file_exists($db_file)) {
         unlink($db_file);
     }
     parent::__construct(array('dbname' => $db_file));
 }
Example #5
0
 public function __construct(array $descriptor)
 {
     $this->_mDescriptor = $descriptor;
     try {
         $this->_dbExist = true;
         parent::__construct($descriptor);
     } catch (\Exception $e) {
         //DB not exists !
         if ($e->getCode() == 1049) {
             $this->_dbExist = false;
         }
     }
 }
Example #6
0
//威宁彝族回族苗族自治县
//改变初中
$sqlite_chuzhong = new Sqlite(['dbname' => 'db/chuzhong_area.db']);
$sql = "select sch_name,pro_name,city_name,area_name from school_area";
$chuzhong = $sqlite_chuzhong->fetchAll($sql);
$length = count($chuzhong);
//$mysql->begin();
foreach ($chuzhong as $key => $val) {
    $val['pro_name'] = (int) $val['pro_name'];
    $val['city_name'] = (int) $val['city_name'];
    $val['area_name'] = (int) $val['area_name'];
    $sql = "update school set pro_code='{$val['pro_name']}',city_code='{$val['city_name']}',area_code='{$val['area_name']}' where sch_name='{$val['sch_name']}' and sch_type=3";
    $mysql->execute($sql);
    echo "初中数据 {$length}/{$key}\n";
}
//$mysql->commit();
//改变高中
$sqlite_gaozhong = new Sqlite(['dbname' => 'db/gaozhong_area.db']);
$sql = "select sch_name,pro_name,city_name,area_name from school_area";
$gaozhong = $sqlite_gaozhong->fetchAll($sql);
$length = count($gaozhong);
//$mysql->begin();
foreach ($gaozhong as $key => $val) {
    $val['pro_name'] = (int) $val['pro_name'];
    $val['city_name'] = (int) $val['city_name'];
    $val['area_name'] = (int) $val['area_name'];
    $sql = "update school set pro_code='{$val['pro_name']}',city_code='{$val['city_name']}',area_code='{$val['area_name']}' where sch_name='{$val['sch_name']}' and sch_type=4";
    $mysql->execute($sql);
    echo "高中数据 {$length}/{$key}\n";
}
//$mysql->commit();
Example #7
0
    $logger->push($appender);
    $appender = new FileAppender($prefix . 'default.log');
    $appender->setLogLevel(Logger::INFO);
    $logger->push($appender);
    if ($isCli) {
        $appender = new ConsoleAppender('php://stderr');
        $formatter = new LineFormatter("%date% [%type%] %message%\n");
        $appender->setFormatter($formatter);
        $appender->setLogLevel(Logger::ERROR);
        $logger->push($appender);
    }
    return $logger;
};
$di['db'] = function () use($di, $config) {
    Model::setup(['notNullValidations' => false]);
    $conn = new DbAdapter($config->database->toArray());
    if (isset($config->eventListeners->db)) {
        $em = $di['eventsManager'];
        foreach ($config->eventListeners->db as $listener => $options) {
            if (is_numeric($listener)) {
                $listener = $options;
                $options = null;
            }
            $em->attach('db', $di->get($listener, [$options]));
        }
        $conn->setEventsManager($em);
    }
    return $conn;
};
if (extension_loaded('apcu')) {
    $di['modelsMetadata'] = function () use($config) {