ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 如何成为OpenCart大师?

2019-09-15 12:40:47  阅读:175  来源: 互联网

标签:opencart php


看起来他们没有文件,除了他们的官方论坛上的一些api电话.我有Zend框架和CodeIgniter框架的经验.任何OpenCart大师都可以向我推荐最好的学习方法,并在最短的时间内掌握它吗?我很快就要做一个大项目.

解决方法:

适用于初学者的OpenCart 1.5.X开发人员快速入门指南

本指南是为熟悉PHP,OOP和MVC架构的开发人员编写的

在下文中,您将看到购物车目录端的示例.管理员方面的功能相同,但相关部分中注明的视图除外

了解图书馆

可以使用$this-> library_name通过Controller,Model和Views访问所有库功能.所有这些都可以在/ system / library /文件夹中找到.例如,要访问当前购物车的产品,您需要使用Cart类,该类位于/system/library/cart.php中,可以使用$this-> cart-> getProducts()访问

常用物品

> customer.php – 与客户相关的功能
> user.php – 与管理员用户相关的功能
> cart.php – 购物车相关功能
> config.php – 从中​​加载所有设置
> url.php – URL生成功能

了解路由参数

OpenCart的框架依赖于查询字符串参数中的route = aaa / bbb / ccc来了解要加载的内容,并且是查找每个页面需要编辑的文件的基础功能.大多数路由实际上只使用aaa / bbb,它应该被视为两个部分,但是一些包含三个部分aaa / bbb / ccc第一部分aaa通常与通用文件夹(如控制器或模板文件夹)中的文件夹相关.第二部分通常与文件名有关,没有相关的.php或.tpl扩展名.第三部分在下面的“理解控制器”一节中进行了解释

理解语言

语言存储在您的语言子文件夹的/ catalog / language /文件夹中.在此范围内,各个页面使用的常规文本值存储在文件夹内的your-language.php文件中,因此对于目录端的英语语言,您可以在catalog / language / english / english.php中找到值. .对于特定的页面文本,您将需要页面的路径(通常是这种情况,但并不总是因为您可以指定您喜欢的任何语言文件).例如,搜索页面具有路径产品/搜索,因此该页面的语言特定文本可以在catalog / language / english / product / search.php中找到(请注意文件的名称和子文件夹与后面的路径匹配. PHP.

要在控制器中加载语言,请使用

$this->language->load('product/search');

然后你可以使用语言库函数来获取特定的语言文本,例如

$some_variable = $this->language->get('heading_title');

语言变量在语言文件中使用特殊变量$_分配,该变量是键和文本值的数组.在您的/catalog/language/english/product/search.php中,您应该找到类似的内容

$_['heading_title']     = 'Search';

全局语言文件english / english.php中的值会自动加载,无需使用$this-> language->加载方法即可使用

理解控制器

控制器根据路线加载,并且非常直接理解.控制器位于/ catalog / controller /文件夹中.继续上一个示例,“搜索”页面的Controller位于此文件夹中的/product/search.php中.再次注意,使用.php后面的路由.

打开控制器文件,您将看到一个扩展Controller类的Pascal Case类名,称为ControllerProductSearch.这又是路由特有的,Controller后跟子文件夹名称和文件名,没有扩展大写.实际上并不需要大小写,但建议它易于阅读.值得注意的是,类名不会从子文件夹和文件名中获取除字母和数字之外的任何值.下划线被删除.

在课堂上是方法.声明为public的类中的方法可以通过路径运行 – private不是.默认情况下,使用标准的两部分路径(上面的aaa / bbb),将调用默认的index()方法.如果使用路径的第三部分(上面的ccc),则将运行此方法.例如,account / return / insert将加载/catalog/controller/account/return.php文件和类,并尝试调用insert方法

了解模型

OpenCart中的模型可以在/ catalog / model /文件夹中找到,并根据功能而不是路由进行分组,因此您需要在控制器中加载它们.

$this->load->model('xxx/yyy');

这将加载名为yyy.php的子文件夹xxx中的文件.然后可以通过对象使用它

$this->model_xxx_yyy

和控制器一样,你只能调用它的公共方法.例如,要调整图像大小,您可以使用工具/图像模型并按如下方式调用其resize方法

$this->load->model('tool/image');
$this->model_tool_image->resize('image.png', 300, 200);

了解控制器视图中的变量赋值

为了将值传递给控制器​​的视图,您只需将数据分配给$this->数据变量,该变量本质上是key =>的数组.价值对.举个例子

$this->data['example_var'] = 123;

如果您熟悉将每个键转换为变量的extract()方法,那么在视图中访问它有点容易理解.因此example_var键变为$example_var,并且可以在视图中进行访问.

理解主题

主题仅供目录方使用,基本上是模板,样式表和主题图像的文件夹.主题文件夹放在/ catalog / view / theme /文件夹中,后跟主题名称.除默认文件夹外,文件夹名称不重要

管理员端使用/ admin / view / template /(从路径中跳过/ theme / theme-name /,因为它不允许不同的主题)

模板文件驻留在主题文件夹中的模板文件夹中.如果当前所选主题的任何模板都不可用,则使用默认文件夹的模板作为后备.这意味着可以使用非常少的文件创建主题,并且仍然可以完全运行.它还可以在进行升级时减少代码重复和问题

理解视图(模板)

与语言和模型一样,视图文件通常与路径相关,但不必完全相关.目录端的模板通常位于/ catalog / view / theme / your-theme / template /中,除非它不存在,在这种情况下将使用默认主题的模板.对于上面的搜索页面示例,该文件是product / search.tpl.对于具有三个部分的路由,它通常在aaa / bbb_ccc.tpl中,尽管没有硬设置规则.在管理员中,大多数页面都遵循此规则,但列出项目的页面(如产品列表页面)位于catalog / product_list.tpl中,产品编辑表单位于catalog / product_form.tpl中.同样,这些都没有设置,而是默认购物车的标准.

模板文件实际上只是另一个php文件,但是扩展名为.tpl并且实际上是在控制器文件中运行,因此您可以在控制器中编写的所有内容都可以在模板文件中运行(尽管不建议除非绝对必要)

了解数据库对象

使用查询运行

$result = $this->db->query("SELECT * FROM `" . DB_PREFIX . "table`");

DB_PREFIX顾名思义是一个包含数据库前缀的常量(如果存在)

$result将返回SELECT查询的对象,其中包含一些属性

$result-> row包含第一行的数据,如果一个或多个作为关联数组返回

$result-> rows包含一个行结果数组,非常适合使用foreach进行循环

$result-> num_rows包含返回的结果数

$this-> db对象还有一些额外的方法

$this-> db-> escape()在传递的值上使用mysql_real_escape_string()

$this-> db-> countAffected返回受UPDATE查询影响的行数,依此类推

$this-> db-> getLastId()使用mysql_insert_id()返回上一个自动增量ID

了解保留变量

OpenCart有预定义的变量来代替标准的$_GET,$_POST,$_SESSION,$_COOKIE,$_FILES,$_REQUEST和$_SERVER

$_SESSION使用$this-> session->数据进行编辑,其中数据是模仿$_SESSION的关联数组

所有其他人都可以使用$this->请求进行访问,并且已经“清理”以符合启用/禁用的魔术引号,因此

$_GET成为$this-> request-> get

$_POST变为$this-> request-> post

$_COOKIE成为$this-> request-> cookie

$_FILES变为$this-> request->文件

$_REQUEST变为$this-> request->请求

$_SERVER成为$this-> request->服务器

摘要

虽然以上内容对开发人员来说不是一个防弹指南,但希望它可以作为入门者的良好起点

标签:opencart,php
来源: https://codeday.me/bug/20190915/1804761.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有