Magento开发
第一章
手册简介Introduction
对一个开发人员来说,电子商务开发也许是现今最具创造性的工作。在这个瞬息万变的网络世界,为了保持始终领先竞争对手一步,无论是对你自己还是你的客户,你都需要更具创造性的解决方案。只有最棒的用户体验才能把你的潜在客户真正转化为营业额。有组织的布局,方便的搜索,快速的页面载入,吸引人的显示效果,直观的导航合在一起形成了用户体验,它能在商店和消费者之间建立起一定程度的信任感。 用最好的工具来开始一个电子商务解决方案为您实现客户的各种想法打下了坚实的基础。
以magento来开始你的电子商务解决方案,为您的在线商店提供了最好的基础。不管你是懂一点还是精通于开发,你都会看到magento为你各种创造性的想法提供了最好的开发平台。从少量的模板调整到定制化模块,再到各种独特的产品展现形式,magento会帮助你比传统形式更快的实现这些。
谁会用到这个手册?
开发者
对开发者来说,这个手册对Magento的结构提供了一个完整的介绍,并且提供了足够的例子使你可以把你的任何编程的想法得以实现。开发者会学会如何写一个定制化模块并且很方便的部署安装到Magento中。
商城拥有者
如果你不是一个开发人员,仅仅是想简单的运行一个Magento商店,这个手册可能并不适合你。但如果你认为你可能需要对你的Magento商城做一些定制化开发,这个手册会帮助你更好的和你的开发人员交流。
当你雇佣了一个你不熟悉的开发人员,你很难避免他在你眼皮底下磨洋工。用这个手册中关于Magento的知识把自己武装起来后,你就可以验证你从开发人员那里拿到的东西的价值,并从中发现你的开发人员是否在偷懒。
关于这个手册
这个手册大致上有组织的深入描述了两个章节的内容:第一个章节通过代码透视和一般用户接口透视描述了Magento是如何工作的,剩余章节会通过创建各种模块的例子带领读者进入Magento的世界。尽管没有包含所有Magento接口的细节,这个手册通过带领读者学习所有的例子来让读者理解所有Magneto代码的思想。
编码规范
由于Magento是建立在Zend Framework的基础上,本书中例子的代码规范将遵循Zend Framework的风格。为了适应页面和节省空间,这本书中有些例子的代码有缩短,因此风格可能受到一些影响。
本书中当涉及到关于变量,类,对象或者概念的词或短语将会以斜体显示。当涉及一些特殊的词比如变量,类名时,这些词将格式化为内嵌代码,文件名也将用这样的格式 。
当谈到Mage_Core_Model_Abstract对象类,将使用斜体,当谈到为什么类命名为Mage_Core_Model_Abstract时,将使用内嵌代码 。
XML的例子
当引用XML,…(省略号)是用来表示其他的、可选的,或者预先存在的XML标记。
XML结构如下:
<config>
<modules>
<Company_RewardPoints>
<version>0.1.0</version>
<depends>
<Mage_Customer/>
<Mage_Checkout/>
</depends>
</Company_RewardPoints>
</modules>
<global>
<resources>
<rewardpoints_setup>
<setup>
<module>Company_RewardPoints</module>
<class>Mage_Core_Model_Resource_Setup</class>
</setup>
<connection><use>core_setup</use></connection>
</resources>
</global>
</config>
在rewardpoints_setup标签周围的部分可能被表示为这样:
<config>
…
<global>
…
<resources>
<rewardpoints_setup>
<setup>
<module>Company_RewardPoints</module>
<class>Mage_Core_Model_Resource_Setup</class>
</setup>
<connection><use>core_setup</use></connection>
</resources>
…
</global>
…
</config>
操作系统要求
如果可能的话,本书将描述在Linux,Mac OS X和Windows操作系统上各自的技术程序。但为了保持例子的简洁性,文件路径将使用Windows目录和文件名的命名规则。在列出的路径中,正斜杠(/)将作为路径 分隔符,Unix(Mac OS X和Linux)+PHP+Apache可以自动转换成反斜杠。
看到如下路径不要感到奇怪:C:/xampp/apache/htdocs/magento/
第二章
准备你的开发环境
确保你已经下载了最新版本的Magento。可以以下这个域名下载到最新版本的Magento:
LAMP/WAMP平台
如果你在Windows 平台下, 最方便的方式是使用XAMPP包来安装PHP+Apache+MySQL。 下载地址:http://apachefriends.org .
在硬盘的任何位置都可以安装XAMPP-lite包 ,你只是需要运行setup.bat文件 。同样在Mac OS X和Linux 下也有相对应版本的XAMPP。
Subversion
开发你自己的模块时,建议使用Subversion版本控制来跟踪所有的代码改动。Windows用户推荐使用从http://tortoisesvn.tigris.org下载的客户端和服务器端。对于Mac和Linux用户,建议在命令行输入svn程序来获得PHP包 websvn。 如果你对Subversion系统不熟悉,可以在Subversion的网站浏览更多内容
(http://subversion.tigris.org/ )。
MySQL工具
除了直接操作MySQL服务器 ,最有用的是有个图形化的客户端来时刻检查Magento的数据库表。 MySQL Query Browser是MySQL公司提供的官方客户端,并且支持所有主流操作系统。 尽管有些用户更喜欢mysqlcc或phpMyAdmin。
安装
在你的网站服务器文件根目录下解压Magento(从这里开始,{docroot}代表根目录)。你可以看到这样的路径布局:
{docroot}/magento/
app/
index.php
js/
lib/
LICENSE.txt
media/
pear
skin/
var/
数据库安装
即使你的数据库用户有权利建立数据库,Magento也不会产生其所需的数据库给你。 正因为如此,我们需要使用前面提到的其中一个MySQL工具来创建数据库。一个正常的数据库名,有时被称为schema,可以是“magento”或“magento_dev”,或者你可以包含版本号“magento_10”。
Magento安装
现在你可以在地址栏中输入http://localhost/magento/ 来继续Magento的基本安装 。这里你会看到安装一个PHP网站 程序的每一个步骤,安照屏幕上的指示,你就可以完成Magento的安装。
示例数据
如果这是您第一次试用Magento,你应该安装可选的示例数据。 示例数据是一个单独的下载包,大约35 MB,提供了一些样本产品、分类和图片。当你下载了安装包,把media文件夹覆盖你的Magento安装目录下的media文件夹,然后用你的 MySQL管理工具运行提供的SQL文件。
到这一步,示例数据已经完整的安装完成。 因此,它需要在正常安装之前就导入,正常安装会把样本数据更新到原始版本。
初始化Subversion
Magento模块从三个路径执行:core、community和local。本书所有的例子假设你在local路径下开发。 在local路径下,你可以把所有 的模块集合起来放在一个叫Mage的包中,这个名字是针对Magento的核心模块,但本书中所有例子将使用Company这个包名。 除了Company,你可以使用任何包名来代表你自己的公 司或组织。初始化Subversion有点棘手。首先,你需要初始化库。然后,你需要创建一个文件夹或路径导入到这个新的库。之后,你还不能开始使用 subversion,那些被导入的路径需要删除,为了让库连接到subversion,要check out库。让我们来看看详细的步骤。
得到Linux平台上subversion库是相当容易的。从RPM安装subversion,通常存在一个类似的路径/var/lib /subversion/repository/。初始化一个库的命令:svnadmin create /var/lib/subversion/repositories/magento_modules
如果你在Windows平台下使用TortoiseSVN,在你计算机任何地方创建一个文件夹,右键单击该文件夹,从TortoiseSVNmenu选择Create repository here…
我们设置Subversion的目标在Magento中的/app/code/local路径下有一个命名为Company的文件夹。这使我们随时可以很 容易添加一个模块,保存subversion的工作。在/app/code/local路径下创建一个路径,命名为svn_import。在临时 svn_import路径下创建另一个叫Company(或其他名字)的文件夹。如果你运行在Unix平台上,运行svn_import路径中的命令(忽 略shell提示符):
[svn_import]$ svn import . /
file:///var/lib/svn/repositories/magento_modules/
在Windows中,在svn_import文件夹中右键单击TortoiseSVN,选择Import…菜单选项。一个新的对话框将出现,并要求您输入的库URL。单击省略号按钮,浏览到你在上一步中指定的文件夹储存库。
成功导入库后删除svn_import文件夹。下一步,我们要checkout刚导入的文件夹来获得Subversion的启动目录。在Unix:
[local]$ svn checkout /
file:///var/lib/svn/repositories/magento_modules/Company
在Windows上,右键单击local文件夹并选择SVN Checkout….接受对话框中的默认设置,当它询问是否真的要覆盖该文件夹时点击Yes。 覆盖所有Subversion命令超出了本书的范围。但你愿意的话,你已经可以准备开发和保存subversion路径下自定义Magento模块。