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备份和恢复
|
1月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习算法篇】K-近邻算法
K近邻(KNN)是一种基于“物以类聚”思想的监督学习算法,通过计算样本间距离,选取最近K个邻居投票决定类别。支持多种距离度量,如欧式、曼哈顿、余弦相似度等,适用于分类与回归任务。结合Scikit-learn可高效实现,需合理选择K值并进行数据预处理,常用于鸢尾花分类等经典案例。(238字)
|
6月前
|
自然语言处理 安全 JavaScript
HarmonyOsNEXT【ArkUI超全解析】新手必看的方舟UI框架指南!
本文是HarmonyOS NEXT方舟UI框架新手指南,涵盖ArkTS开发核心知识点。从UI与组件基础概念到声明式开发优势,再到ArkTS代码实战,包括组件创建、属性设置、事件绑定等。通过实例解析自定义组件开发流程,提供避坑技巧与代码风格建议,助你快速掌握ArkUI框架精髓,轻松构建高效、美观的HarmonyOS应用界面。适合初学者及希望转型声明式开发的开发者学习参考。
266 2
|
6月前
|
自然语言处理 调度 决策智能
掌握Multi-Agent实践(二):基于AgentScope构建支持@机制的群聊系统,实现定向对话机制
掌握Multi-Agent实践(二):基于AgentScope构建支持@机制的群聊系统,实现定向对话机制
391 10
|
11月前
|
移动开发 小程序 前端开发
使用php开发圈子系统特点,如何获取圈子系统源码,社交圈子运营以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP 小程序 H5
开发一个圈子系统(也称为社交网络或社群系统)可以是一个复杂但非常有趣的项目。以下是一些关键特点和步骤,帮助你理解如何开发、获取源码以及运营一个圈子系统。
422 4
|
Web App开发 搜索推荐 安全
|
存储 数据处理 UED
计算机随机存取存储器(RAM )
【8月更文挑战第4天】
4523 8
|
缓存 分布式计算 DataWorks
DataWorks操作报错合集之连接数据库时出现了通信链接失败的报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
自然语言处理
学生党打工人救星,GPT一句话生成精美PPT
学生党打工人救星,GPT一句话生成精美PPT
662 1
|
开发框架 前端开发 JavaScript
【专栏】对比分析两种流行的跨平台开发框架——Flutter和React Native,探讨它们的优势、劣势以及适用场景
【4月更文挑战第27天】本文对比分析了Flutter和React Native两大跨平台移动开发框架。Flutter,由Google推出,以其接近原生的性能、快速启动和流畅滚动受青睐,适合高性能和高度定制的项目。React Native,Facebook维护,依赖JavaScript,虽性能受限,但热重载优势和丰富第三方库使其适合快速迭代的项目。两者都在拓展多平台应用,Flutter在桌面和Web,React Native在Windows。选择框架需考虑项目需求、团队技能和性能效率平衡。
798 1