etu / php-tools
此软件包已被弃用,不再维护。未建议替代软件包。
个人项目的一些工具
dev-master
2015-03-25 14:50 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- jakub-onderka/php-parallel-lint: @stable
- phpmd/phpmd: @stable
- phpunit/phpunit: @stable
- squizlabs/php_codesniffer: @stable
This package is not auto-updated.
Last update: 2022-01-22 03:36:06 UTC
README
使用 composer 安装
composer.json
{
"require": {
"etu/php-tools": "dev-master"
}
}
Config 和 Db 的示例用法
config.ini
[@] db.dsn = 'sqlite::memory:' db.username = db.password = [example.com] db.username = live [*.dev.example.com] db.username = dev
或
config.json
{
"@": {
"db": {
"dsn": "sqlite::memory:",
"username": "",
"password": ""
}
},
"example.com": {
"db": {
"username": "live"
}
},
"*.dev.example.com": {
"db": {
"username": "dev"
}
}
}
test.php
<?php require('vendor/autoload.php'); // If using INI-file: // (Optional) Second parameter matches title in ini-file $config = new Etu\PhpTools\IniConfig('config.ini', 'optional.example.com'); // If using JSON-file // (Optional) Second parameter matches first level of objects in json-file $config = new Etu\PhpTools\JsonConfig('config.json', 'optional.example.com'); // Then load Db $db = new Etu\PhpTools\Db($config, new Etu\PhpTools\Db\PdoBackend()); $db->query('CREATE TABLE names(id INTEGER PRIMARY KEY, name VARCHAR(10));'); $db->query('INSERT INTO names(id, name) VALUES (NULL, "Alice");'); $db->query('INSERT INTO names(id, name) VALUES (NULL, "Bob");'); print_r( $db->query( 'SELECT * FROM names WHERE name = :name', [':name' => 'Alice'] )->fetchAll() );
JsonConfig 的高级功能
- 模块
- 默认设置
- 环境
- 环境依赖的默认设置覆盖
- 模块覆盖
模块
模块及其包括默认设置的覆盖示例用法
{
"__modules__": {
"my-db-module": {
"db": {
"username": "default",
"password": "default"
}
}
},
"@": {
"default": "values"
},
"example.com": {
"__loaded_modules__": [
"my-db-module"
],
"db": {
"username": "example.com"
}
}
}
这将导致如下配置(如果加载环境 example.com):
[config:Etu\PhpTools\JsonConfig:private] => stdClass Object
(
[db] => stdClass Object
(
[username] => example.com
[password] => default
)
[default] => values
)