Typecho Framework 注入简介

简介: 注入是Typecho-Framewrok的重要特性。注入写起来非常优雅,在性能上也有好处(避免了函数开销)。本文简要介绍如何使用Typecho-Framework的注入。如果你不太了解Typecho-Framework,请先参考Typecho Framework简介和Typecho Framework: Hello world!两篇文章。

注入是Typecho-Framewrok的重要特性。注入写起来非常优雅,在性能上也有好处(避免了函数开销)。本文简要介绍如何使用Typecho-Framework的注入。如果你不太了解Typecho-Framework,请先参考Typecho Framework简介Typecho Framework: Hello world!两篇文章。


注入的使用十分简单。


首先我们在入口程序中声明注入的配置文件:

Base::setInjectiveObjects(require(ROOT . '/config/injects.php'));

然后在配置文件config/injects.php中绑定需要注入的对象:

returnarray(

 'ending' => array('Hello\Service\Ending'),

);

这里我们将ending绑定到Hello\Service\Ending这个我们自行实现的类。

Ending类包含一个方法,该方法返回一个END字符串:

namespace Hello\Service;

classEnding

{

 publicfunctionendWord() {

   return'END';

 }

}

在Action中,我们只需声明ending变量即可实现注入:

namespaceHello\Action;

useTE\Mvc\Action\AbstractAction;

/**

* Hello

*

* @use AbstractAction

*/

classhelloWorldextendsAbstractAction

{

 private  $ending;

 publicfunctionexecute()

 {

   returnarray('content', 'Hello, world.' . $this->ending->endWord());

 }

}

注入很爽吧?

注入会迷惑IDE。 比如,$this->ending->endWord()这句,PHPStorm中输入$this->ending->之后无法提示、补全方法了。PHPStorm中需要自动提示的话,需要额外使用@var注明。(感谢suchasplus提供这个小窍门。)

相关文章
|
关系型数据库 Shell Linux
ACL(访问控制列表)权限管理
一、ACL权限 二、rwx权限 三、mask权限 四、ACL备份和恢复
|
9月前
|
自然语言处理 安全 JavaScript
HarmonyOsNEXT【ArkUI超全解析】新手必看的方舟UI框架指南!
本文是HarmonyOS NEXT方舟UI框架新手指南,涵盖ArkTS开发核心知识点。从UI与组件基础概念到声明式开发优势,再到ArkTS代码实战,包括组件创建、属性设置、事件绑定等。通过实例解析自定义组件开发流程,提供避坑技巧与代码风格建议,助你快速掌握ArkUI框架精髓,轻松构建高效、美观的HarmonyOS应用界面。适合初学者及希望转型声明式开发的开发者学习参考。
|
Web App开发 搜索推荐 安全
|
安全 网络协议 物联网
车联网的IP
车联网中的IP操作并不是一个可以直接用数量来界定的概念,因为它涉及到多个层面和复杂的网络通信过程。然而,可以从车联网的架构和网络通信的角度来探讨车联网中可能涉及的IP相关操作。车联网架构,车联网架构通常包含多层,从物理层、链路层、网络层、传输层到应用层。在每一层中,都可能涉及到IP相关的操作,但具体的操作方式会根据层级的不同而有所差异。
|
缓存 分布式计算 DataWorks
DataWorks操作报错合集之连接数据库时出现了通信链接失败的报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
开发框架 前端开发 JavaScript
【专栏】对比分析两种流行的跨平台开发框架——Flutter和React Native,探讨它们的优势、劣势以及适用场景
【4月更文挑战第27天】本文对比分析了Flutter和React Native两大跨平台移动开发框架。Flutter,由Google推出,以其接近原生的性能、快速启动和流畅滚动受青睐,适合高性能和高度定制的项目。React Native,Facebook维护,依赖JavaScript,虽性能受限,但热重载优势和丰富第三方库使其适合快速迭代的项目。两者都在拓展多平台应用,Flutter在桌面和Web,React Native在Windows。选择框架需考虑项目需求、团队技能和性能效率平衡。
940 1
|
运维 监控 供应链
《统计学简易速速上手小册》第7章:时间序列分析(2024 最新版)
《统计学简易速速上手小册》第7章:时间序列分析(2024 最新版)
236 1
|
数据采集 自然语言处理 数据挖掘
一文搞懂:【VC++技术杂谈005】如何与程控仪器通过GPIB接口进行通信
一文搞懂:【VC++技术杂谈005】如何与程控仪器通过GPIB接口进行通信
787 0
|
监控 搜索推荐 程序员
程序员的数字化工作台:理解不关机背后的逻辑与需求
程序员的数字化工作台:理解不关机背后的逻辑与需求
293 1
|
Python
Python系列(22)—— 排序函数
Python系列(22)—— 排序函数