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 )