carbonorm / carbonphp
一个PHP 8.1+工具包,包括RESTFUL ORM、套接字、会话管理和路由。
Requires
- php: >=8.3
- ext-curl: *
- ext-fileinfo: *
- ext-json: *
- ext-openssl: *
- ext-pcntl: *
- ext-pdo: *
- ext-posix: *
- ext-readline: *
- ext-sockets: *
- ext-zip: *
- mustache/mustache: ^v2.14.2
- psr/log: 1.1.4
Requires (Dev)
- phpmetrics/phpmetrics: >=2.7
- phpunit/phpunit: >=9.5
- phpunit/phpunit-selenium: >=9.0.1
- richardtmiles/php-git-hooks: dev-main
- se/selenium-server-standalone: >=3.141.59
- dev-lts
- 20.5.9
- 20.5.8
- 20.5.7
- 20.5.6
- 20.5.5
- 20.5.4
- 20.5.3
- 20.5.2
- 20.5.1
- 20.5.0
- 20.4.3
- 20.4.2
- 20.4.1
- 20.4.0
- 20.3.19
- 20.3.18
- 20.3.17
- 20.3.16
- 20.3.15
- 20.3.14
- 20.3.13
- 20.3.12
- 20.3.11
- 20.3.10
- 20.3.9
- 20.3.8
- 20.3.7
- 20.3.6
- 20.3.5
- 20.3.4
- 20.3.3
- 20.3.2
- 20.3.1
- 20.3.0
- 20.2.0
- 20.1.9
- 20.1.8
- 20.1.7
- 20.1.6
- 20.1.5
- 20.1.4
- 20.1.3
- 20.1.2
- 20.1.1
- 20.1.0
- 20.0.0
- 19.2.6
- 19.2.5
- 19.2.4
- 19.2.3
- 19.2.2
- 19.2.1
- 19.2.0
- 19.1.0
- 19.0.15
- 19.0.14
- 19.0.13
- 19.0.12
- 19.0.11
- 19.0.10
- 19.0.9
- 19.0.8
- 19.0.7
- 19.0.6
- 19.0.5
- 19.0.4
- 19.0.3
- 19.0.2
- 19.0.1
- 19.0.0
- 18.1.1
- 18.1.0
- 18.0.8
- 18.0.7
- 18.0.6
- 18.0.5
- 18.0.4
- 18.0.3
- 18.0.2
- 18.0.1
- 18.0.0
- 17.1.3
- 17.1.2
- 17.1.1
- 17.1.0
- 17.0.0
- 16.0.0
- 15.1.2
- 15.1.1
- 15.1.0
- 15.0.2
- 15.0.1
- 15.0.0
- 14.7.8
- 14.7.7
- 14.7.6
- 14.7.5
- 14.7.4
- 14.7.3
- 14.7.2
- 14.7.1
- 14.7.0
- 14.6.9
- 14.6.8
- 14.6.7
- 14.6.6
- 14.6.5
- 14.6.4
- 14.6.3
- 14.6.2
- 14.6.1
- 14.6.0
- 14.5.5
- 14.5.4
- 14.5.3
- 14.5.2
- 14.5.1
- 14.5.0
- 14.4.9
- 14.4.8
- 14.4.7
- 14.4.6
- 14.4.5
- 14.4.4
- 14.4.3
- 14.4.2
- 14.4.1
- 14.4.0
- 14.3.9
- 14.3.8
- 14.3.7
- 14.3.6
- 14.3.5
- 14.3.4
- 14.3.3
- 14.3.2
- 14.3.1
- 14.3.0
- 14.2.9
- 14.2.8
- 14.2.7
- 14.2.6
- 14.2.5
- 14.2.4
- 14.2.3
- 14.2.2
- 14.2.1
- 14.2.0
- 14.1.9
- 14.1.8
- 14.1.7
- 14.1.6
- 14.1.5
- 14.1.4
- 14.1.3
- 14.1.2
- 14.1.1
- 14.1.0
- 14.0.9
- 14.0.8
- 14.0.7
- 14.0.6
- 14.0.5
- 14.0.4
- 14.0.3
- 14.0.2
- 14.0.1
- 14.0.0
- 13.9.9
- 13.9.8
- 13.9.7
- 13.9.6
- 13.9.5
- 13.9.4
- 13.9.3
- 13.9.2
- 13.9.1
- 13.9.0
- 13.8.9
- 13.8.8
- 13.8.7
- 13.8.6
- 13.8.5
- 13.8.4
- 13.8.3
- 13.8.2
- 13.8.1
- 13.8.0
- 13.7.9
- 13.7.8
- 13.7.7
- 13.7.6
- 13.7.5
- 13.7.4
- 13.7.3
- 13.7.2
- 13.7.1
- 13.7.0
- 13.6.9
- 13.6.8
- 13.6.7
- 13.6.6
- 13.6.5
- 13.6.4
- 13.6.3
- 13.6.2
- 13.6.1
- 13.6.0
- 13.5.9
- 13.5.8
- 13.5.7
- 13.5.6
- 13.5.5
- 13.5.4
- 13.5.3
- 13.5.2
- 13.5.1
- 13.5.0
- 13.4.6
- 13.4.5
- 13.4.4
- 13.4.3
- 13.4.2
- 13.4.1
- 13.4.0
- 13.3.9
- 13.3.8
- 13.3.7
- 13.3.6
- 13.3.5
- 13.3.4
- 13.3.3
- 13.3.2
- 13.3.1
- 13.3.0
- 13.2.1
- 13.2.0
- 13.1.8
- 13.1.7
- 13.1.6
- 13.1.5
- 13.1.3
- 13.1.2
- 13.1.1
- 13.1.0
- 13.0.7
- 13.0.6
- 13.0.5
- 13.0.4
- 13.0.3
- 13.0.2
- 13.0.1
- 13.0.0
- 12.4.4
- 12.4.3
- 12.4.2
- 12.4.1
- 12.4.0
- 12.3.9
- 12.3.8
- 12.3.7
- 12.3.6
- 12.3.5
- 12.3.4
- 12.3.3
- 12.3.2
- 12.3.1
- 12.3.0
- 12.2.9
- 12.2.8
- 12.2.7
- 12.2.5
- 12.2.4
- 12.2.3
- 12.2.1
- 12.2.0
- 12.1.4
- 12.1.3
- 12.1.2
- 12.1.1
- 12.1.0
- 12.0.9
- 12.0.8
- 12.0.7
- 12.0.6
- 12.0.5
- 12.0.4
- 12.0.3
- 12.0.2
- 12.0.1
- 12.0.0
- 11.3.6
- 11.3.5
- 11.3.4
- 11.3.3
- 11.3.2
- 11.3.1
- 11.3.0
- 11.2.9
- 11.2.8
- 11.2.7
- 11.2.6
- 11.2.5
- 11.2.4
- 11.2.3
- 11.2.2
- 11.2.1
- 11.2.0
- 11.1.9
- 11.1.8
- 11.1.7
- 11.1.6
- 11.1.5
- 11.1.4
- 11.1.3
- 11.1.2
- 11.1.1
- 11.1.0
- 11.0.9
- 11.0.8
- 11.0.7
- 11.0.6
- 11.0.5
- 11.0.4
- 11.0.3
- 11.0.2
- 11.0.1
- 11.0.0
- 10.9.9
- 10.9.8
- 10.9.7
- 10.9.6
- 10.9.5
- 10.9.4
- 10.9.3
- 10.9.2
- 10.9.1
- 10.9.0
- 10.8.9
- 10.8.8
- 10.8.7
- 10.8.6
- 10.8.5
- 10.8.4
- 10.8.3
- 10.8.2
- 10.8.1
- 10.8.0
- 10.7.0
- 10.6.9
- 10.6.8
- 10.6.7
- 10.6.6
- 10.6.4
- 10.6.3
- 10.6.2
- 10.6.1
- 10.6.0
- 10.5.9
- 10.5.8
- 10.5.7
- 10.5.6
- 10.5.5
- 10.5.4
- 10.5.3
- 10.5.2
- 10.5.1
- 10.5.0
- 10.4.8
- 10.4.7
- 10.4.6
- 10.4.5
- 10.4.4
- 10.4.3
- 10.4.2
- 10.4.1
- 10.4.0
- 10.3.4
- 10.3.3
- 10.3.2
- 10.3.1
- 10.3.0
- 10.2.9
- 10.2.8
- 10.2.7
- 10.2.6
- 10.2.5
- 10.2.4
- 10.2.3
- 10.2.2
- 10.2.1
- 10.2.0
- 10.1.6
- 10.1.5
- 10.1.4
- 10.1.3
- 10.1.2
- 10.1.1
- 10.1.0
- 10.0.6
- 10.0.5
- 10.0.4
- 10.0.3
- 10.0.2
- 10.0.1
- 10.0.0
- 9.9.9
- 9.9.8
- 9.9.7
- 9.9.6
- 9.9.5
- 9.9.4
- 9.9.3
- 9.9.2
- 9.9.1
- 9.9.0
- 9.8.9
- 9.8.8
- 9.8.7
- 9.8.6
- 9.8.5
- 9.8.4
- 9.8.3
- 9.8.2
- 9.8.1
- 9.8.0
- 9.7.9
- 9.7.8
- 9.7.7
- 9.7.6
- 9.7.5
- 9.7.4
- 9.7.3
- 9.7.2
- 9.7.1
- 9.7.0
- 9.6.6
- 9.6.5
- 9.6.4
- 9.6.3
- 9.6.2
- 9.6.1
- 9.6.0
- 9.5.6
- 9.5.5
- 9.5.4
- 9.5.3
- 9.5.2
- 9.5.1
- 9.5.0
- 9.4.9
- 9.4.8
- 9.4.7
- 9.4.6
- 9.4.5
- 9.4.4
- 9.4.3
- 9.4.2
- 9.4.1
- 9.4.0
- 9.3.9
- 9.3.8
- 9.3.7
- 9.3.6
- 9.3.5
- 9.3.4
- 9.3.3
- 9.3.2
- 9.3.1
- 9.3.0
- 9.2.2
- 9.2.1
- 9.2.0
- 9.1.7
- 9.1.6
- 9.1.5
- 9.1.4
- 9.1.3
- 9.1.2
- 9.1.1
- 9.1.0
- 9.0.9
- 9.0.8
- 9.0.7
- 9.0.6
- 9.0.5
- 9.0.4
- 9.0.3
- 9.0.2
- 9.0.1
- 9.0.0
- 8.2.8
- 8.2.7
- 8.2.6
- 8.2.5
- 8.2.4
- 8.2.3
- 8.2.2
- 8.2.1
- 8.2.0
- 8.1.6
- 8.1.5
- 8.1.4
- 8.1.3
- 8.1.2
- 8.1.1
- 8.1.0
- 8.0.7
- 8.0.6
- 8.0.5
- 8.0.4
- 8.0.3
- 8.0.2
- 8.0.1
- 8.0.0
- 7.5.1
- 7.5.0
- 7.4.2
- 7.4.1
- 7.4.0
- 7.3.3
- 7.3.2
- 7.3.1
- 7.3.0
- 7.2.1
- 7.2.0
- 7.1.0
- 7.0.5
- 7.0.4
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
- 6.7.1
- 6.7.0
- 6.5.5
- 6.5.4
- 6.5.2
- 6.5.1
- 6.4.1
- 6.4.0
- 6.3.4
- 6.3.3
- 6.3.2
- 6.3.1
- 6.3.0
- 6.2.1
- 6.1.0
- 6.0.0
- 5.0.2
- 5.0.1
- 5.0.0
- 4.9.0
- 4.5.0
- 4.1.1
- 4.1.0
- 4.0.2
- 4.0.1
- 4.0.0
- 3.1.2
- 3.1.1
- 3.0.0
- 2.1.0
- 2.0.0
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.0
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dependabot/npm_and_yarn/es5-ext-0.10.64
- dev-version20
- dev-RichardTMiles-patch-2
- dev-RichardTMiles-patch-1
- dev-restNamespacePrefixBugfix
- dev-master
- dev-RestUpdate_PrimaryKeyValidation
This package is auto-updated.
Last update: 2024-09-19 22:42:13 UTC
README
欢迎使用CarbonPHP
我们的完整文档可在我们的GitHub Wiki或Carbonorm.dev上的可运行示例中找到。
安装
composer require carbonorm/carbonphp
此命令将使用Composer安装CarbonPHP的最新版本。如果您尚未安装Composer,可以按照getcomposer.org上的说明进行安装。Composer是PHP的包管理器,使用CarbonPHP需要它。《a href="https://packagist.org.cn/packages/carbonorm/carbonphp" rel="nofollow noindex noopener external ugc">Packagist是Composer包的官方存储库,下载统计信息是从这里收集的。旧的存储库位置composer require richardtmiles/carbonphp
仍然可以通过composer/packagist使用,但建议迁移到新位置。上面显示的总下载次数#是重复的,以反映通过composer的两种下载方式。
Wordpress
或者,您可以安装CarbonPHP作为WordPress插件。这将允许您通过引导用户界面使用CarbonPHP的功能。
CarbonPHP工具包和性能库
CarbonPHP已经发展成为CarbonORM公共组织。在那里您可以找到有关使用ORM的前端过程文档。C6现在指的是任何Carbon*前缀的CarbonORM包。
CarbonPHP通过PHPUnit测试和GitHub Actions达到了其自身特征的稳定信任水平,但仍处于积极开发中。CarbonPHP在生产环境中使用。任何尝试使用此代码的个人或团队将在GitHub通过问题和论坛获得支持。我们通常期望您可能遇到的问题都是小的。如果您编辑代码库,请考虑在GitHub上提交这些更改!C6使用语义版本控制2.0.0。通常:MAJOR版本在您进行不兼容的API更改时使用,MINOR版本在以向后兼容的方式添加功能时使用,PATCH版本在您进行向后兼容的错误修复时使用。功能/类等更改将在每次次要版本中在变更日志中列出。请仔细阅读变更日志或代码更改,在更新时。请参阅carbonphp.com上的指南。
简介 - { MySQL ORM ∪ WebSockets ∪ $_SESSION管理 ∪ PDO数据库管理 }
CarbonPHP 是一个 PHP 8.2+ 库,用于简化自定义动态 Web 应用程序的开发。其主要目标是使 Web 应用程序运行速度极快,性能和可扩展性是绝对最高优先级。CarbonPHP 拥有令人印象深刻的统计数据,有时可以将处理 MySQL 热门网站的轻量级服务器的流量翻倍。C6 可以作为您开发需求的独立骨干,或与其他流行的框架(如 WordPress 或 Laravel)一起使用。
CarbonPHP 的其他目标包括便携性;允许您的 Web 应用程序安装在不同操作系统(Windows、Mac 和 Linux 支持的服务器)上。提供完整的 MySQL ORM REST 生成器和围绕 MySQL 设计的 PHP 编写的数据库工具。Windows PHP 目前缺少一个能够进行分叉的库。如果您的开发需要在 Windows 电脑上进行,请查看 WSL。我希望能够贡献一个用 C(PHP是用 C 编写的)编写的 PHP 库以支持这项任务,但时间是一个因素。如果您想帮助实现这个目标,请通过 Richard@Miles.Systems 联系我。请参阅 Carbonphp.com 上的文档以获取更多信息。对于其他生活在 Windows 地狱之外的人,C6 具有用于标准使用和 WordPress 使用的 Websocket 库类。
快速开始
现有项目
composer require carbonorm/carbonphp
标准
C6 应遵循以下 PHP 标准建议。
要求
CarbonPHP 目前需要 PHP 8.2 或更高版本。我们努力保持与 PHP 的支持版本 保持最新。它使用返回类型对象表示法,不应移植到更早的 PHP 版本。CarbonPHP 将始终努力保持与最新版本的 PHP 保持同步。强烈建议使用 XCache 等代码缓存,因为与代码缓存搭配使用时,Carbon 能够完全不需要 stat() 调用。还建议(但不是必需的)使用 memcached 等内存缓存引擎。如果 PHP8 未得到支持,将随着 C6 的第一个向后兼容版本获得支持。计划在 2022 年夏季取消对 7.4 的支持。
文档
所有函数都应该在代码中使用 PHPDoc 风格的文档。《CarbonPHP.com》也提供了代码库的完整说明。请确保您的命名空间映射正确!";
RESTFUL ORM
CarbonPHP 的最大特点是 MySQL ORM。通过运行可自定义的 CLI 命令,我们的程序将分析您的数据库模式并生成用于操作表的强大类。自动生成的文件可以与用于构建令人愉悦的 RESTFUL 语义结构的类结合使用。以下是使用 REST ORM 的示例。您可以在 此处查看生成的源代码。
<?php $id = Users::Post([ Users::USER_TYPE => 'Athlete', Users::USER_IP => '127.0.0.1', Users::USER_SPORT => 'GOLF', Users::USER_EMAIL_CONFIRMED => 1, Users::USER_USERNAME => Config::ADMIN_USERNAME, Users::USER_PASSWORD => Config::ADMIN_PASSWORD, Users::USER_EMAIL => 'richard@miles.systems', Users::USER_FIRST_NAME => 'Richard', Users::USER_LAST_NAME => 'Miles', Users::USER_GENDER => 'Male' ]);
跨多张表连接。
Users::Get($user, $uid, [ Users::SELECT => [ Users::USER_USERNAME, Carbon_Locations::STATE ], Users::JOIN => [ Users::INNER => [ Carbon_Location_References::TABLE_NAME => [ Users::USER_ID => Carbon_Location_References::ENTITY_REFERENCE ], Carbon_Locations::TABLE_NAME => [ Carbon_Locations::ENTITY_ID => Carbon_Location_References::LOCATION_REFERENCE ] ] ], Users::PAGINATION => [ Users::LIMIT => 1, Users::ORDER => [Users::USER_USERNAME => Users::ASC] ] ]);
从前端使用 ORM。此示例展示了多表连接以及聚合函数(GROUP_CONCAT)的使用。
const {axios} = this.props; axios.get('/rest/' + C6.carbon_users.TABLE_NAME, { params: { [C6.SELECT]: [ C6.carbon_users.USER_USERNAME, C6.carbon_users.USER_FIRST_NAME, C6.carbon_users.USER_LAST_NAME, C6.carbon_users.USER_ID, [C6.GROUP_CONCAT, C6.carbon_features.FEATURE_CODE], [C6.GROUP_CONCAT, C6.carbon_groups.GROUP_NAME] ], [C6.JOIN]: { [C6.LEFT]: { [C6.carbon_user_groups.TABLE_NAME]: [ C6.carbon_users.USER_ID, C6.carbon_user_groups.USER_ID ], [C6.carbon_groups.TABLE_NAME]: [ C6.carbon_user_groups.GROUP_ID, C6.carbon_groups.ENTITY_ID ], [C6.carbon_feature_group_references.TABLE_NAME]: [ C6.carbon_groups.ENTITY_ID, C6.carbon_feature_group_references.GROUP_ENTITY_ID ], [C6.carbon_features.TABLE_NAME]: [ C6.carbon_features.FEATURE_ENTITY_ID, C6.carbon_feature_group_references.FEATURE_ENTITY_ID ] } }, [C6.PAGINATION]: { [C6.LIMIT]: 100 } } }).then(response => this.setState({users: (response.data.rest || [])}));
内置命令行界面
与 Laravel 的 artisan 类似,任何从命令行调用 CarbonPHP 的文件都将执行 CLI 界面。我计划在 Beta 中建立一个用户命令的系统。使用以下命令查看所有可用的命令:
php index.php help
支持
CarbonPHP 的支持提供在 https://github.com/RichardTMiles/CarbonPHP。
法律
使用 CarbonPHP 即表示您同意其软件许可,该许可可在 LICENSE 文件中找到。此许可可能会随版本更新而更改,因此在升级到 C6 的新版本之前,请查看其许可。
致谢
CarbonPHP 由 BDFL Richard Tyler Miles 创建,并受到 Tom Frost 的 Hydrogen 的启发。
贡献者可在 贡献者页面 找到。
待办事项 - 在 apache 配置上加大力度
https://gist.github.com/RichardTMiles/ae5718aff63ab4633457b6285c825aa2 这将在 CarbonWordPress 中使用,并为 CarbonPHP 的通用使用进行修改。