在joomla中对于每一个组件,都有一个入口点文件,也就是组件开始执行的地方。如果这个文件不存在,系统就会提示找不到组件。v1.0.1版本,我们的组件已经可以正常的执行,在这一节,将通过分析v1.0.1版本的组件的文件代码,初步了解一下入口点文件
直接将v1.0.1版本的组件解压,你可以看到现在组件的文件夹结构如下:
com_zmaxbook文件夹 admin文件夹 zmaxbook.php文件 index.html文件 zmaxbook.xml 文件
zmaxbook.xml文件我们在之前已经了解了,这是组件的清单文件,用来说明这个组件在安装的时候所需要的所有文件。
和之前不同的是,现在多了一个admin文件夹,这个文件夹中有zmaxbook.php文件和index.html两个文件,不用我说估计你也能猜到,admin文件夹下的zmaxbook.php文件就是本节需要介绍的入口点文件了。
直接看代码:
<?xml version="1.0" encoding="utf-8"?> <extension type="component" version="3.0.0" method="upgrade"> <name>zmaxbook</name> <version>1.0.1</version> <!-- 可选项 关于组件版权的一些说明 --> <creationDate>2020-10-28</creationDate> <author>ZMAX团队</author> <authorEmail>zhang19min88AT163.com</authorEmail> <authorUrl>http://www.zmax99.com</authorUrl> <copyright>南宁市程序人软件科技有限责任公司保留所有权利!</copyright> <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license> <description> ZMAX图书管理解决方案,E计划教程组件 </description> <administration> <!-- 后台管理菜单名称--> <menu>ZMAX图书管理系统</menu> <!-- 组件后台需要的文件 --> <files folder="admin"> <filename>index.html</filename> <filename>zmaxbook.php</filename> </files> </administration> </extension>
现在的XML清单文件有点小复杂了.为了便于说明,我已经添加了注释,新增加的这些节点都是可选项。比如creationDate(创建日期), author(作者),copyight(版权)等等这些只是一些补充信息。这些内容最终将出现的扩展的管理界面。如图:
在v1.0.0版本没填这些信息之前,这里都是空白。对于XML文件另外的一个重点就是新增加了files节点。
files这个节点用来说明组件所需要的所有文件或者文件夹。它有一个folder属性,这个属性用来指定文件或者文件夹的相对路径。如:上面folder是admin,所以,系统将去admin目录下寻找zmaxbook.php,index.html
files节点支持两个子节点:file节点和folder节点。folder节点的用法和file节点一样。他们都用来指定需要的文件或者文件夹的名称。(注:上面的XML没有出现了folder节点)
在上面的XML文件中,因为files节点的父节点是administrator节点。所以在安装之后,系统会将admin目录下的index.html文件和zmaxbook.php文件都拷贝到administrator/components/com_zmaxbook目录下面。如图:
请大家注意,系统并不会创建admin文件夹。
组件根目录下的zmaxbook.php文件我们称之为组件的入口点文件。为什么是zmaxbook.php文件呢?还记得之前提到的约定优于设计原则吗? 因为我们的组件名称为zmaxbook.所以组件的入口点文件的名称就为zmaxbook.php。这个是已经约定好的,如果你改用其他的名称,是不会被执行的。
每一个组件都必须有入口点文件,如果没有,系统就会很直接的报出找不到组件的错。
当组件被加载的时候系统会将控制权转交给组件的入口点文件。接下来要做的就是在入口点文件里写我们的代码逻辑就可以了。看看zmaxbook.php文件的代码:
<?php /** * description:ZMAXBOOK组件 入口点文件 * author:min.zhang * Email:zhang19min88AT163.com * Url:http://www.zmax99.com * copyright:南宁市程序人软件科技有限责任公司保留所有权利 * date:2020-10-28 * version:v1.0.1 * @license GNU General Public License version 3, or later */ defined('_JEXEC') or die; ?> <h1><?php echo "欢迎来到Joomla代码世界!";?></h1>
这只是一个非常的简单的PHP文件,大部分是注释部分,真正的代码只有两行
defined('_JEXEC') or die;
这是joomla的一个安全机制,所有的joomla代码都会加上。大家以后在写自己代码的时候加上就可以了
<h1><?php echo "欢迎来到Joomla代码世界!";?></h1>
这是我们的组件的逻辑代码,输出了一句话。虽然上面的代码只有一句话,但却意义深远,这表明你可以在joomla中写自己的代码逻辑了,你可以在这里做任何你可以用php代码做的事情了,限制你的只有你的想象了。
关于index.html文件
在joomla中,我们推荐给每一个文件夹下都放一个空的index.html文件,这样可以有效的避免别人通过直接在浏览器中输入文件夹的路径而列出所有文件的问题。这是一个很好的习惯。
附件1组件v1.0.1版本源码:[下载文件:]com_zmaxbookv1.0.1_2020-10-28_for_j3x.zip
评论 (0)