caedo/framework

此包已被 弃用 且不再维护。未建议替代包。

Caedo PHP 框架基础

1.2.5 2019-06-12 18:48 UTC

README

这是 Caedo PHP 框架的核心。此项目旨在用于分支和补丁。此项目更新了 Composer/Packagist 包 'repository caedo/framework'。如果您想使用框架而不是修改它,请访问此处:https://github.com/kananlanginhooper/Caedo_Example

Caedo PHP 框架示例项目位于此处:https://github.com/kananlanginhooper/Caedo_Example

框架说明

因为这是一个核心项目,所以我不会在这里描述功能。关于这些,请访问示例项目(https://github.com/kananlanginhooper/Caedo_Example)。我们将在这里讨论即将到来的更改、设计决策以及选择的原因。希望这有助于指导持续的开发工作。

##类命名规范和缓存

正如你所知,caedo 对类有一些要求。

  • 所有类必须以 cls 开头并以 .class.inc 结尾。

因此,FileMonkey 类必须命名为 clsFileMonkey.class.inc。然后在 php 代码中作为 clsFileMonkey 使用。这可能对一些人来说似乎限制性很强,但想想它确实使类名非常清晰。此外,.inc 结尾可以防止类被直接执行,并减少了保护这些文件的安全性需求。我见过许多(大型)项目通过留下 php 扩展来允许内部文件被运行。inc 扩展在至少.apache php 中是“默认安全的”。

关于类文件安全性的意见是我很愿意听取的。

  • 目录无关性

我们允许类文件放在 __LOCAL_USER_CLASSES 目录下的任何目录中。这允许开发者设置他们自己的代码组织方法。他们可以将所有类放在 __LOCAL_USER_CLASSES 的根目录下,或者创建一个10层深的目录结构,caedo 不在乎。

这的缺点是可能会让开发者难以找到类文件。我认为这是开发者自己的问题,你把文件放那里,记着放哪里就是你的工作了。

  • 静态包含

这是我不确定是否见过框架做的一件事。默认包含上次此文件需要的类。我实现此功能的理由是 spl_autoload 很慢。至少有一个错误处理器用于处理丢失的类,然后进行目录/文件搜索。由于“目录无关性”带来的灵活性,类文件可能存在于许多地方。项目越大,查找这些文件所需的时间越多,而且通常在给定页面上使用的类也越多。我也很不喜欢看到无效的代码在每次页面加载时被调用。

静态包含通过保存所有使用 spl_autoload 包含的文件列表,并默认加载这些类代码来绕过这个问题。由于这是一个包含文件的缓存,它可以随时被删除。它也列在 .gitignore 中。每次您在两台计算机之间移动,并且您的 web 服务器根目录发生变化时,都应该删除它。

比所需的代码开销更多吗?是的,在某些情况下,可能会加载不需要执行该页面的一些类。我过去没有看到这成为一个问题。如果您有这种情况并且您有一个用例,请将其发送给我,我很想看看您有什么。

进行中。

我正在努力将所有可以分离的框架代码与 composer 兼容。我认为与 composer 兼容很重要,这将进一步减少开发人员工作中项目的文件数量。

我将列出另一个项目作为示例,该项目将 Caedo 框架作为 composer 依赖项。该项目将展示如何设置配置文件、数据库等。

我还将包括可以下载以快速设置的压缩包链接,这对于新手开发人员和没有 composer 支持的开发人员(例如一些共享托管)非常有用。

待办事项

删除不需要的目录和示例页面。

已将 /__framework 改为 /__CAEDO

__vendors 改为 vendor,__StaticIncludes 改为 __STATICINCLUDES

更改了一些文件名称,如 config.*.inc 文件,也将它们移动到 /__CAEDO

还将 caedo.php 改为 __CAEDO.php

我们希望将所有以框架开始的任何内容都使用 __ 开头,并且在大写级别。这将更容易知道可以和不可以删除的内容。

__ 用于框架文件和类,_ 用于框架使用的本地(用户)文件和类