merlinblack / nigelib
适用于微型小型 Web 应用的微型库。
Requires
- php: >=5.3.0
Suggests
- aura/sql: Install for profiling, lazy connection and query tracking.
- symfony/yaml: Install to use YAML files with the Config class.
This package is not auto-updated.
Last update: 2022-08-06 06:49:31 UTC
README
2022年8月1日 存档 - 这相当陈旧。我不再维护它,毫无疑问现在有更好的方法来做这些事情。
适用于微型小型 Web 应用的微型 PHP 库。
即我的有用小工具集合。
关于
具有类似 Laravel 风格的配置文件,可以根据运行代码的机器的域名(或其他参数)自动切换。这意味着你可以在目录中设置默认设置,并在该目录下,你可以选择性地有一个目录,用于在特定主机上运行时使用新或覆盖的设置。
安装 symfony/yaml 允许 Config 类也加载 Yaml 文件。
如果也安装了 Aura/Sql,数据库连接管理器具有 SQL 查询分析。连接仅在第一次检索时初始化,并使用 Config 类进行配置。
Console 类检测输出位置,以写入纯文本、使用 ANSI 转义序列的彩色文本或您可以根据需要样式化的 HTML。
PharBuilder 是一个类,用于帮助构建命令行实用程序,作为 Phar 文件。有关更多信息,请参阅 PharBuilder.php & phartest.php。
StaticDelegate 可以扩展以提供对类实例的方便静态访问,只要有一种方法可以检索实例。提供了两个静态类 - ConfigFacade 和 DatabaseConnectionManagerFacade。
SimpleTemplate 是一个类,用于帮助以 PHP 代码的形式渲染简单模板。它不试图成为一个模板引擎,然而对于基本的视图和模型分离,它也做得不错。
安装
通过 Composer
$ composer require merlinblack/nigelib
或使用 git 进行克隆。
示例用法
以下是检索配置在 config
或 localconfig
目录中的 PDO 连接的方法。
<?php use NigeLib\ConfigFacade as Config; use NigeLib\Environment; use NigeLib\DatabaseConnectionManagerFacade as DB; // This needs to be done only once... Config::init( 'localconfig', Environment::getEnvironmentName('envmap.php'), 'config' ); // Grab the PDO instance associated with 'temp' or create one based on the info // in config/database.php $temp_pdo = DB::get('temp');
要使上述内容生效,您还需要两个额外的文件
envmap.php
<?php // Environment map. // // Maps environment names to one or more host names. // These can be used by the Config class via the Environment class // to read different configurations depending on which host this is running // on. return array( 'live' => array( 'www.atkinson.kiwi' ), 'test' => array( 'localhost.com', 'localhost','test.atkinson.kiwi' ), );
config/database.php
<?php return array( 'default' => 'blog', 'connections' => array( 'blog' => array( 'driver' => 'pgsql', 'host' => 'localhost', 'database' => 'test', 'user' => 'postgres', 'password' => '', ), 'temp' => array( 'driver' => 'sqlite', 'filename' => ':memory:', ), ), );