nabeelalihashmi/lightframework

v1.0.0 2022-06-24 05:24 UTC

This package is auto-updated.

Last update: 2024-09-24 10:57:40 UTC


README

LightFramework

LightFramework

制作框架的框架

LightFramework是一个最小的库,可以根据您的需求制作自己的框架。您可以使用任何组件,如路由器、缓存等,并将它们注册。LightFramework还提供了延迟调用的功能。根据优先级,在末尾调用延迟函数。

关于作者

Nabeel Ali | https://iconiccodes.com | mail2nabeelali@gmail.com

动机

一个框架使开发者能够编写可管理的代码,并使他们更容易管理代码。但是问题是大多数框架都过于庞大。它们具有您不需要的功能。这使得它们不适合小型项目,并导致性能下降。

例如

  • 您只需要路由器和数据库来构建API。您可以使用LightFramework,并仅安装路由器和数据库插件。无需电子邮件库、哈希库等冗余软件。

  • 您想要一个静态网站。您只需要使用路由器。

  • 您想要一个具有动态内容的网站,您可以使用路由器和模板引擎。

功能

* Easy
* Very minimum code for initialization.
* Deferred calls
* Call deffered calls prematurely when required.
* Add callables as plugin

安装

通过Composer安装

composer require nabeelalihashmi/LightFramework

或者下载类并使用自己的自动加载功能。

用法

  • 创建LightFramework的新实例。它需要4个参数
    • config:存储配置文件的目录路径。
    • autoload:存储自动加载文件的目录路径。
    • global_symbol:LightFramework的全局访问实例的符号。默认是__

示例

$light = new LightFramework('config', 'autoload', '__');

  • 使用plugModule()方法插入模块。它需要3个参数
  • key:将要使用$light->getModule($key)稍后访问的插件模块的名称。
  • callable:可调用的插件。
  • callback:框架在对象加载时调用的回调。

示例

$demo = new Demo(10, 20);
$light->pluginModule('demo', $demo, function($demo) {
  $demo->showMessage();
});

  • 启动框架
$light->init();

注意

当调用init时,首先在自动加载目录中加载所有库。然后加载自动加载目录中的autoload_module.config.php文件中的插件。

方法

getVersion

  • 获取LightFramework的版本
public static function getVersion()
  • 构造函数
  • string $config_dir
  • string $autoload_dir
  • string $global_symbol
public function __construct($config_dir = 'config', $autoload_dir = 'autoload', $global_symbol = '__')

instance

  • 如果调用构造函数,则返回框架的实例,否则抛出异常
  • 返回self
  • @throws Exception
public static function instance()

defer

  • 将调用延迟到执行结束时或调用runDefered()时运行
  • integer $id
  • callable $callback
  • 返回void
public function defer(int $id, callable $callback)

init

  • 启动函数
  • 返回void
public function init()

runDeferred

  • 运行延迟调用。如果第二个参数设置为false,则调用不会被从列表中删除。如果调用
  • 提前调用,则在执行结束时将再次调用。
  • array $ids
  • boolean $remove_upon_calling
  • 返回void
public function runDeferred($ids = [], $remove_upon_calling = true)

plugModule

  • 将模块添加到框架并运行回调函数
  • string $identifier
  • callable $object
  • string $callback
  • 返回void
public function plugModule($identifier, $object, $callback = null)
  • 从框架中删除插入的模块并运行回调函数
  • string $identifier
  • callback $callback
  • 返回void
public function unplugModule($identifier, $callback = null)

getModule

  • 访问插入的模块
  • string $module_name
  • 返回callable
public function getModule($module_name) 

get

  • 使用点符号从数组中获取值
  • 数组 $array
  • 字符串 $key
  • 字符串 $default
  • 返回void
public static function get($array, $key, $default = null) 

集合

  • 使用点表示法设置数组值
  • 数组 $array
  • 字符串 $key
  • 字符串 $value
  • 返回void
public static function set(&$array, $key, $value) 

getConfig

  • 使用点表示法从配置中获取配置
  • 字符串 $key
  • 返回void
public static function getConfig($key)

setConfig

  • 使用点表示法设置配置值
  • 字符串 $key
  • 字符串 $value
  • 返回void
public static function setConfig($key, $value)

getConfigRaw

  • 使用数组键从配置中获取配置
  • 字符串 $key
  • 返回void
public static function getConfigRaw($key)

setConfigRaw

  • 使用数组键在配置中设置配置
  • 数组键 $key
  • 字符串 $val
  • 返回void
public static function setConfigRaw($key, $val)

getConfigAll

  • 返回配置数组以供调试目的。
  • 返回void
public static function getConfigAll()

许可证

LightFramework根据以下条件发布在宽松的许可证下:

  • 不能用于创建成人应用。
  • 不能用于创建赌博应用。
  • 不能用于创建含有仇恨言论的应用。
  • 必须在致谢中提及LightFramework。

MIT许可证

版权所有2022 Nabeel Ali | IconicCodes.com

特此授予任何获得本软件及其相关文档文件(“软件”)副本的个人免费使用权,在不限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件提供者这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任承担责任,无论这些责任是基于合同、侵权或其他原因,无论这些责任是否源于、因之产生或与之相关软件或其使用或其它交易。