Wallogit.com
2017 © Pedro Peláez
Simple PDO-based Model
Example of using:, (*1)
class YoutubeVideosModel extends \PdoModel\PdoModel
{
const TABLE = 'youtube_videos';
protected function create($title, $src) {
$this->insert(['title' => $title, 'src' => $src]);
}
}
$youtubeVideosModel = new YoutubeVideosModel(new \Pdo());
$result = $youtubeVideosModel->select(['id', 'likes', 'url'])
->whereEqual('published', 1)
->where('likes', '>', 100)
->orderBy('likes desc')
->limit(100)
->offset(2000)
->groupBy('author')
->getAllRows();
var_dump($result);
composer require phpset/pdomodel
Check that you have proper PHP extentions, (*2)
# Change 8.2 below to your current PHP version sudo apt install php8.2-pdo php8.2-pdo-mysql php8.2-pdo-sqlite
You need to create a usual PDO connection:, (*3)
$connection = new \PDO(
"mysql:host=127.0.0.1;dbname=YOURDBNAME;charset=utf8mb4",
"YOURUSER",
"YOURPASSWORD",
[
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC,
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
]
);
Example for creating PDO in Symfony service config:, (*4)
PDO:
class: \PDO
arguments:
- "mysql:host=127.0.0.1;dbname=YOURDBNAME;charset=utf8mb4"
- "YOURUSER"
- "YOURPASSWORD"
-
!php/const PDO::ATTR_DEFAULT_FETCH_MODE: !php/const PDO::FETCH_ASSOC
!php/const PDO::ATTR_ERRMODE: !php/const PDO::ERRMODE_EXCEPTION
SQLite example, (*5)
$connection = new \PDO('sqlite::db.sqlite');
new PdoModel($connection)->setTable('test_table');
# run tests ./vendor/bin/phpunit # Check coverage php -dxdebug.mode=coverage ./vendor/bin/phpunit --coverage-text