osmphp / core
在任意PHP项目中启用模块化软件开发
v0.10.19
2022-03-07 17:53 UTC
Requires
- php: >=8.0
- ext-mbstring: *
- nikic/php-parser: ^4
- phpdocumentor/reflection-docblock: ^5
- symfony/lock: ^5
Requires (Dev)
- phpunit/phpunit: ^9
- v0.10.x-dev
- v0.10.19
- v0.10.18
- v0.10.17
- v0.10.16
- v0.10.15
- v0.10.14
- v0.10.13
- v0.10.12
- v0.10.11
- v0.10.10
- v0.10.9
- v0.10.8
- v0.10.7
- v0.10.6
- v0.10.5
- v0.10.4
- v0.10.3
- v0.10.2
- v0.10.1
- v0.10.0
- v0.9.x-dev
- v0.9.5
- v0.9.4
- v0.9.3
- v0.9.2
- v0.9.1
- v0.9.0
- v0.8.13
- v0.8.12
- v0.8.11
- v0.8.10
- v0.8.9
- v0.8.8
- v0.8.7
- v0.8.6
- v0.8.5
- v0.8.4
- v0.8.3
- v0.8.2
- v0.8.1
- v0.8.0
- v0.7.1
- v0.7.0
- v0.6.17
- v0.6.16
- v0.6.15
- v0.6.14
- v0.6.13
- v0.6.12
- 0.6.11
- v0.6.10
- v0.6.9
- v0.6.8
- v0.6.7
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.x-dev
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
This package is auto-updated.
Last update: 2024-09-07 23:24:17 UTC
README
关于osmphp/core
osmphp/core
使得在任意PHP项目中实现模块化软件开发成为可能——将应用程序代码划分为模块——可重用、可扩展且可插拔的部分。
模块是负责应用程序单个功能或概念的目录。例如,一个模块可以处理电子商务应用程序中的产品,另一个模块可以授权用户进入应用程序的受限区域,另一个模块可以使应用程序在命令行中运行,等等。
osmphp/core
在几个方面与其他框架不同
- 前所未有的可扩展性。从您的模块中,您可以添加新方法并修改任何其他模块类的现有(甚至受保护的)方法。
- 较小的占用空间,更快的执行速度。类属性值仅在(并且如果)它们被访问时才计算,除非您显式地分配它们。
- 简单的对象实例化。类知道并使用它们的默认依赖关系,您在创建对象时不需要传递它们。除非您想要这样做,例如,在单元测试中模拟依赖关系。这也完全消除了配置依赖注入容器的麻烦。
- 自动装配。通过扩展某个类或将属性添加到类中,将您的类连接到应用程序。应用程序深知所有模块的类定义,并将它们连接起来,而无需额外的配置文件。
先决条件
此库需要
- PHP 8
mbstring
扩展
- Composer
如果需要,请安装它们。
安装
安装osmphp/core
Composer包
composer require osmphp/core
入门指南
按照以下描述准备项目以使用库。将来,此包将预安装项目模板,您无需编写此样板代码。
-
在
src/App.php
文件中创建一个应用程序类(假设您的项目已配置为从src/
目录自动加载App\
命名空间;如果不是这种情况,相应地调整代码片段)<?php declare(strict_types=1); namespace App; use Osm\Core\App as BaseApp; class App extends BaseApp { }
-
在
src/ModuleGroup.php
中创建一个模块组类<?php declare(strict_types=1); namespace App; use Osm\Core\ModuleGroup as BaseModuleGroup; class ModuleGroup extends BaseModuleGroup { }
-
编译应用程序(在Windows中,使用
\
代替/
)php vendor/osmphp/core/bin/compile.php App\App
-
在您的入口文件
public/index.php
中(可能存在多个入口文件,将以下内容添加到每个文件中),确保代码在应用程序对象的上下文中执行<?php declare(strict_types=1); use Osm\Runtime\Apps; use App\App; ... Apps::$project_path = dirname(__DIR__); Apps::run(Apps::create(App::class), function() { ... });
使用库
文档是正在进行的工程。本节将在就绪后更新。
贡献
您的帮助非常受欢迎,无论是报告的bug、偶尔的pull request,还是完全的参与。要开始,请打开一个问题,并告诉我们您想成为其中的一员,我们将与之联系。
许可证
osmphp/core
包是开源软件,根据GPL v3许可证授权。
商业许可证及支持
如果开源许可证不适合您,或者您需要支持,请通知我。