zendframework官方入门手册_第1页
zendframework官方入门手册_第2页
zendframework官方入门手册_第3页
zendframework官方入门手册_第4页
zendframework官方入门手册_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

zendframework官方入门手册 ?创建项目为了创建项目?你必须首先下载并解压缩Zend框架。 安装Zend框架?相处了一个完整的Zend框架的PHP堆栈最简单的方法是通过安装?Zend服务器。 Zend服务器有本地安装的Mac OSX?Windows中的Fedora Core和Ubuntu?以及作为一个普遍的兼容大多数Linux发行版的安装包。 框架文件后?您已经安装了Zend服务器?可根据发现的/usr/本地/ZEND/Mac OSX和Linux上的份额/ZendFramework?和C?Program Files文件的ZendZendServer共享ZendFramework Windows上。 已配置的include_path将包括Zend框架。 或者?您可以?下载最新版本的Zend框架和提取的内容?使你这样做了说明。 或者?您可以将路径添加到库/归档文件的子目录到你的php.ini的设置。 这就是它?Zend框架正在安装?并准备使用。 创建您的项目?注?ZF在您的Zend Framework安装的命令行工具是一个bin/子目录中?包含脚本zf.sh和zf.bat?分别为基于UNIX和基于Windows的用户。 使这个脚本的绝对路径的说明。 无论你看到的命令引用ZF?请替换脚本的绝对路径。 在类Unix系统?你可能想使用shell的别名功能?如果你有问题设立的ZF命令行工具?请参阅到的别名zf.sh=路径/ZendFramework/BIN/zf.sh。 手册。 打开一个终端?在Windows中?开始-运行?然后使用CMD?。 导航到一个目录?您想启动一个项目。 然后?使用相应的脚本路径?并执行下列之一?1.?ZF创建项目快速启动运行此命令将创建您的网站的基本结构?包括你最初的控制器和视图。 树看起来如下?1.快速入门2.|-应用3.|-Bootstrap.php4.|-CONFIGS5.|-的application.ini6.|-控制器7.|-ErrorController.php8.|-IndexController.php9.|-模型10.|-意见11.|-佣工12.|-脚本13.|-错误14.|-error.phtml15.|-指数16.|-index.phtml17.|-库18.|-公共19.|-htaess的。 20.|-的index.php21.-测试22.|-应用23.|-bootstrap.php24.|-库25.|-bootstrap.php26.-phpunit.xml如果你还没有加入到你的include_path Zend框架?在这一点上?我们建议或者复制或libg.a连结到你的库/目录。 在任何情况下?你想要么递归复制或符号的图书馆/Zend/你的Zend Framework安装到您的项目库/目录的目录。 在类Unix系统?这将类似于下列之一?1.?符号链接?2.?光盘库;LN-S路径/ZendFramework/图书馆/Zend的。 3.4.?复制?5.光盘库;CP-R路径/ZendFramework/图书馆/Zend的。 在Windows系统上?它可能是最容易做?从资源管理器。 现在?该项目创建?开始理解的主要构件是引导?配置?动作控制器和意见。 的引导?您的自举类定义什么样的资源和组件初始化。 默认情况下?初始化Zend框架的前端控制器?它使用的应用程序/控制器/默认的目录中寻找行动控制器?稍后?。 这个类看起来如下?1./应用/Bootstrap.php的2.3.类的Bootstrap延伸Zend_Application_Bootstrap_Bootstrap4.5.正如你可以看到?没有多少是必要的开始。 配置?虽然Zend框架本身是configurationless的?你经常需要配置您的应用程序。 默认配置是摆在应用/CONFIGS/的application.ini?并包含一些基本的指令设置你的PHP环境?例如?把错误报告和关闭?表明引导类路径?以及它的类名?你的动作控制器的路径。 它看起来如下?1.;应用/CONFIGS的/的application.ini2.3.生产4.phpSettings。 display_startup_errors=05.phpSettings。 的display_errors=06.的includepaths。 库APPLICATION_PATH“/。 /库”7.引导路径=APPLICATION_PATH“/Bootstrap.php的”8.引导。 类=“引导”9.appnamespace=“应用程序”10.resources.frontController。 controllerDirectory=APPLICATION_PATH“/控制器”11.resources.frontController.params。 displayExceptions=012.13.分期?生产14.15.测试?生产16.phpSettings。 display_startup_errors=117.phpSettings。 的display_errors=118.19.发展?生产20.phpSettings。 display_startup_errors=121.phpSettings。 的display_errors=1有关此文件应注意的几件事情。 首先?使用INI风格的配置时?您可以参考常数直接和扩大;APPLICATION_PATH实际上是一个常数。 此外?请注意?有几个部分定义?生产?分期?测试和开发?。 后者继承从“生产”环境设置。 这是一个有用的方式来组织配置?以确保适当的设置是在应用开发的每个阶段提供。 动作控制器?你的应用程序的行动控制器包含您的应用程序的工作流程?并做您的请求映射到适当的模式和意见的工作。 动作控制器应在“行动”的结尾有一个或多个方法?这些方法可能会被要求通过网络。 默认情况下?Zend Framework的网址遵循模式/控制器/行动?“控制器”地图行动控制器的名称?减去“控制器”后缀?和“行动”映射到一个动作方法?减“行动”的后缀?。 通常情况下?你总是需要一个IndexController?这是一个备用的控制器?这也是该网站的主页?一个ErrorController?这是用来显示404错误?控制器或动作没有找到?和500错误的东西?如?应用程序错误?。 默认IndexController如下?1./应用/控制器/IndexController.php的?2.3.类IndexController Zend_Controller_Action的延伸4.5.6.公共初始化函数?7.8./*初始化动作控制器*/9.10.11.公共功能indexAction?12.13./操作的主体14.15.和默认ErrorController如下?1./应用/控制器/ErrorController.php的?2.3.类ErrorController Zend_Controller_Action的延伸4.5.6.公共的功能errorAction?7.8.$错误=$-_getParam?“error_handler?;9.10.开关?错误-类型?11.情况Zend_Controller_Plugin_ErrorHandler:EXCEPTION_NO_ROUTE?12.情况Zend_Controller_Plugin_ErrorHandler:EXCEPTION_NO_CONTROLLER?13.情况Zend_Controller_Plugin_ErrorHandler:EXCEPTION_NO_ACTION?14.15./404错误-控制器或行动没有发现16.-的GetResponse?-setHttpResponseCode?404?;17.$这个-视图-消息=“页面没有找到”;18.打破;19.默认情况下?20./应用程序错误21.-的GetResponse?-setHttpResponseCode?500?;22.-视图-消息=“应用程序错误”;23.打破;24.25.26.-视图-例外=$错误-异常;27.-视图-请求=$失误-请求;28.29.你会注意到?1?的IndexController包含没有真正的代码?和?2?ErrorController参考“意见”属性。 这导致很好地融入我们的下一个主题。 意见?写在普通的旧的PHP Zend框架的意见。 查看脚本放置在应用程序/意见/脚本/?在那里他们进一步分类使用的控制器名称。 在我们的例子中?我们有IndexController和ErrorController?因此?我们有相应的索引/错误/在我们的视图脚本目录的子目录。 这些子目录内?你就会发现和创建视图脚本对应每个控制器的行动暴露在默认情况下?因此我们有视图脚本索引/的index.phtml和错误/error.phtml。 视图脚本可能包含你想要的任何标记?并使用PHP开始标记结束标记插入PHP指令。 以下是我们的默认安装指数/index.phtml视图脚本为?4.欢迎Zend框架?35.这是你的项目的主要页面2.有用的链接?43.的Zend框架网站|44.Zend框架45.手册9.错误/error.phtml视图脚本是稍微更有趣?因为它使用一些PHP的条件?1.2.DOCTYPE HTML公众“-/W3C/DTD XHTML1.0Strict标准/”;3.“.w3/TR/xhtml1/DTD/xhtml1-strict.dtd.8.9.10.发生错误11.消息12.13.ENV?14.15.异常信息?16.17.邮件?例外-GETMESSAGE?18.19.20.堆栈跟踪?21.例外-getTraceAsString?22.23.24.请求参数?25.请求-getParams?1?9.30.创建一个虚拟主机?对于这种快速启动的目的?我们将假定您正在使用?Apache Web服务器。 Zend框架与其他Web服务器-包括Microsoft Inter信息服务器的ligd?nginx的?更完美-但大多数开发商应在最低阿帕奇famililar?它提供了一个简单的介绍Zend Framework的目录结构和重写能力。 要创建您的虚拟主机?你需要知道你的位置d.conf文件?并有可能在其他配置文件位于。 一些常见的位置?/etc/d的/d.conf中?的Fedora?RHEL中?和其他人?/etc/apache2/d.conf?的Debian?Ubuntu和其他?的/usr/本地/ZEND的/etc/d.conf文件?*nix的机器上的Zend服务器?C?程序文件Zend的的Apache2conf下?Zend的Windows机器上的服务器?在您的d.conf?或在某些系统上的d-vhosts.conf?你需要做两件事情。 首先?确保NameVirtualHost被定义?通常情况下?你会设置它的值为“*80”。 二?定义一个虚拟主机?1.2.的ServerName quickstart.local3.DocumentRoot的路径/快速启动/公共4.5.SETENV APPLICATION_ENV“发展”6.7.8.DirectoryIndex的index.php文件9.设置AllowOverride所有10.命令允许?拒绝11.允许从所有12.13.有几件事情要注意。 首先?请注意DocumentRoot的设置指定的公共我们项目的子目录?这意味着?只有该目录下的文件可以被直接送达的服务器。 第二?注意设置AllowOverride?订单?并允许指令?这些都是让我们用我们的项目文件htacess内。 在开发过程中?这是一个很好的做法?因为它可以防止需要不断地重新启动Web服务器?为您改变您的网站指令;然而?在生产中?你可能应该推你的htaess的内容到你的服务器配置文件和禁用这一点。 第三?注意SETENV指令。 我们在这里做的是为您的虚拟主机设置环境变量?这个变量将在index.php文件?并拿起用来设置我们的Zend Framework的应用程序的APPLICATION_ENV常数。 在生产中?你可以省略这个指令?在这种情况下?它会默认为“生产”的价值?或设置明确“生产”。 最后?您将需要一个条目添加到您的主机文件中的相应的价值你在你的ServerName指令。 在*nix的类似系统?这是通常是/etc/hosts文件;Windows上?你会发现通常是C?WINDOWSSYSTEM32DRIVERS等。 无论系统?该项目将看起来如下?.1quickstart.local启动您的Web服务器?或重启?你应该准备好去。 创建一个布局你可能已经注意到?在上一节的视图脚本的HTML片段?而不是完整的页面。 这是由设计?我们希望我们的行动?返回的行动本身?而不是作为一个整体的应用不仅关系到的内容。 现在?我们必须撰写?成为一个完整的HTML页面生成内容。 我们也希望有一个一致的外观和感觉的应用。 我们将使用一个全球性的站点布局?完成这两项任务。 那里有两个设计模式?Zend Framework的使用实施布局?两个步骤查看?复合视图通常与两个步骤查看?变换视图模式的基本思路是?您的应用程序视图创建一个代表?然后注入到最终转化为母版视图。 复合视图模式与一个或多个原子?应用程序的意见作出了看法。 在Zend Framework?Zend_Layout的结合这些模式背后的思想。 而不是每个动作视图脚本?包括站点范围内的文物需要?他们可以简单地专注于自己的责任。 然而?有时你可能需要在您的站点范围内的视图脚本的应用程序特定的信息。 幸运的是?Zend框架的观点提供了各种占位符?让你从你的动作视图脚本提供这些信息。 要开始使用Zend_Layout的?首先我们需要告知我们使用布局资源的引导。 这可以使用ZF使布局命令?1.?ZF使布局2.布局已启用?并创建默认布局3.申请/布局/脚本/layout.phtml的4.布局条目已被添加到应用程序配置文件。 命令指出?应用/CONFIGS的/的application.ini更新?现在包含在以下生产部分?1.;应用/CONFIGS的/的application.ini2.3.加入生产部分?4.resources.layout。 LayoutPath的=APPLICATION_PATH“/布局/脚本”最终INI文件应如下所示?1.;应用/CONFIGS的/的application.ini2.3.生产4.PHP设置?我们要初始化5.phpSettings。 display_startup_errors=06.phpSettings。 的display_errors=07.的includepaths。 库APPLICATION_PATH“/。 /库”8.引导路径=APPLICATION_PATH“/Bootstrap.php的”9.引导。 类=“引导”10.appnamespace=“应用程序”11.resources.frontController。 controllerDirectory=APPLICATION_PATH“/控制器”12.resources.frontController.params。 displayExceptions=013.resources.layout。 LayoutPath的=APPLICATION_PATH“/布局/脚本”14.15.分期?生产16.17.测试?生产18.phpSettings。 display_startup_errors=119.phpSettings。 的display_errors=120.21.发展?生产22.phpSettings。 display_startup_errors=123.phpSettings。 的display_errors=1这个指令告诉您的应用程序?以寻找在布局视图脚本的应用程序/布局/脚本。 如果你检查你的目录树?你会看到这个目录已经为您创建的文件layout.phtml。 我们也希望?以确保我们有一个XHTML DOCTYPE声明为我们的应用程序。 为了实现这一目标?我们需要添加一种资源?我们的引导。 添加引导资源的最简单方法是简单地创建一个受保护的方法与短语开头的_init。 在这种情况下?我们要初始化的DOCTYPE?因此我们将创建一个_initDoctype?方法在我们的引导类?1./应用/Bootstrap.php的2.3.类的Bootstrap延伸Zend_Application_Bootstrap_Bootstrap4.5.保护功能_initDoctype?6.7.8.在该方法中?我们需要暗示的观点?使用适当的DOCTYPE。 但是?在将视图对象?最简单的办法是初始化视图资源;我们有一次?我们可以从引导拉视图对象?并使用它。 要初始化视图资源?下面的行添加到您的应用程序/CONFIGS/的application.ini文件?在显着的部分生产?1.;应用/CONFIGS的/的application.ini2.3.加入生产部分?4.resources.view=这就告诉我们?不带任何选项?“”表示?“意见”的关键是一个数组?我们通过无关?初始化视图。 现在?我们有一个观点?让出我们的_initDoctype?方法的肉。 中?我们将首先确保已运行查看资源?获取视图对象?然后对其进行配置?1./应用/Bootstrap.php的2.3.类的Bootstrap延伸Zend_Application_Bootstrap_Bootstrap4.5.保护功能_initDoctype?6.7.-引导?视图?;8.$视图=$-的getResource?“视图”?;9.$视图-DOCTYPE?“XHTML1_STRICT?;10.11.现在?我们已经初始化Zend_Layout的设置DOCTYPE?让我们创建我们的网站广泛布局?1.2.DOCTYPE?.7.headLink?-appendStylesheet?/CSS/global.css“?1.12.ZF快速启动应用13.14.15.的URL?16.阵列?控制器=留言?17.“默认”?18.真实的?“在线留言2.布局?-内容?23.24.25.我们抓住我们的应用程序的内容?使用布局?视图助手?进入“内容”键。 如果你想?你可能会导致其他的细分响应?但在大多数情况下?这是这是必要的。 还要注意headLink?占位符的使用。 这是一个简单的方法来生成的HTML元素?以及保持整个应用程序的轨道。 如果你需要添加额外的CSS表?以支持一个单一的行动?你可以这样做?并保证这将是目前在最终渲染的页面。 注?边检站立即去“的localhost”?并检查了源。 你应该看到你的XHTML头?头?标题?和身体部分。 创建一个模型和数据库表在我们开始之前?让我们考虑的东西?这里将这些类的生活?我们将如何找到他们呢?创建默认项目中?我们实例化一个自动加载磁带机。 我们可以附加其他的自动装载机?以便它知道在哪里可以找到不同的类。 通常情况下?我们希望我们的各种MVC类分组在同一棵树下-在这种情况下?应用程序/-和最经常使用一个共同的前缀。 Zend_Controller_Front有一个“模块”?这是个人的迷你应用程序的概念。 模块模仿?ZF工具应用/下建立目录结构?并在他们里面所有的类都假定有一个共同的前缀?模块名称开始。 应用/本身就是一个模块-“默认”或“应用程序”模块。 正因为如此?我们将要为这个目录内的资源设置自动装填。 Zend_Application_Module_Autoloader提供所需的各种资源的映射下?以适当的目录模块的功能?以及提供一个标准的命名机制。 默认情况下创建类的一个实例?引导对象的初始化过程中?将默认使用您的应用程序引导模块的前缀“应用程序”。 正因为如此?我们的模型?表格?表类?将所有与类前缀“Application_”的开始。 现在?让我们的考虑是什么使留言板。 通常情况下?它们仅仅是注释?时间戳?并经常?电子邮件地址的一个条目清单。 假设我们存储在数据库中?我们可能还需要一个独特的标识?为每个条目。 我们可能会希望能够保存条目?取个别条目?检索所有条目。 正因为如此?一个简单的留言模型API可能看起来像这样?1./应用程序/模型/Guestbook.php的2.3.类Application_Model_Guestbook4.5.保护美元_ment;6.保护$_created;7.保护美元_email;8.保护的_id美元;9.10.公共函数_set?$名称?值?;11.公共函数_get?$名?;12.13.公共的功能setComment?文本美元?;14.公共的功能getComment?;15.16.公共功能setEmail?电子邮件?;17.公共功能getEmail?;18.19.公共功能setCreated?TS?;20.getCreated公共函数?;21.22.公共功能SETID?ID?;23.公共功能的getId?;24.25.26.类Application_Model_GuestbookMapper27.28.公共函数保存?Application_Model_Guestbook$留言?;29.公共功能找到?$ID?;30.公共功能fetchAll?;31._get?和_set?将提供方便的机制?为我们访问个别项目的性质?并代理其他getter和setter。 他们也将有助于确保我们的白名单的唯一属性将对象。 找到?和fetchAll?提供的能力?以获取一个条目或所有条目?同时保存?节约数据存储的条目。 现在?从这里?我们可以开始思考建立数据库。 首先?我们需要初始化DB资源。 与资源布局和视图?我们可以提供的配置DB资源。 我们可以做的ZF配置DB-适配器命令?1.?ZF配置DB适配器2.适配器=PDO_SQLITE及DBNAME=APPLICATION_PATH“/。 /数据/DB/guestbook.db”3.生产4.用于生产的DB配置已被写入到应用程序配置文件。 5.6.?ZF配置DB适配器7.适配器=PDO_SQLITE及DBNAME=APPLICATION_PATH“/数据/DB/留言-testing.db”8.测试9.用于生产的DB配置已被写入到应用程序配置文件。 10.11.?ZF配置DB适配器12.适配器=PDO_SQLITE及DBNAME=APPLICATION_PATH“/数据/DB/留言-dev.db”13.发展14.用于生产的DB配置已被写入到应用程序配置文件。 现在?/CONFIGS/的application.ini文件?您的应用程序?在这里你会看到在适当的部分添加以下行。 1.;应用/CONFIGS的/的application.ini2.3.生产4.;.5.resources.db。 适配器=“PDO_SQLITE”6.resources.db.params。 DBNAME=APPLICATION_PATH“/。 /数据/DB/guestbook.db”7.8.测试?生产9.;.10.resources.db。 适配器=“PDO_SQLITE”11.resources.db.params。 DBNAME=APPLICATION_PATH“/。 /数据/DB/留言-testing.db”12.13.发展?生产14.;.15.resources.db。 适配器=“PDO_SQLITE”16.resources.db.params。 DBNAME=APPLICATION_PATH“/。 /数据/DB/留言-dev.db”你的最终配置文件应该看起来如下?1.;应用/CONFIGS的/的application.ini2.3.生产4.phpSettings。 display_startup_errors=05.phpSettings。 的display_errors=06.引导路径=APPLICATION_PATH“/Bootstrap.php的”7.引导。 类=“引导”8.appnamespace=“应用程序”9.resources.frontController。 controllerDirectory=APPLICATION_PATH“/控制器”10.resources.frontController.params。 displayExceptions=011.resources.layout。 LayoutPath的=APPLICATION_PATH“/布局/脚本”12.resources.view=13.resources.db。 适配器=“PDO_SQLITE”14.resources.db.params。 DBNAME=APPLICATION_PATH“/。 /数据/DB/guestbook.db”15.16.分期?生产17.18.测试?生产19.phpSettings。 display_startup_errors=120.phpSettings。 的display_errors=121.resources.db。 适配器=“PDO_SQLITE”22.resources.db.params。 DBNAME=APPLICATION_PATH“/。 /数据/DB/留言-testing.db”23.24.发展?生产25.phpSettings。 display_startup_errors=126.phpSettings。 的display_errors=127.resources.db。 适配器=“PDO_SQLITE”28.resources.db.params。 DBNAME=APPLICATION_PATH“/。 /数据/DB/留言-dev.db”请注意?数据库?S?将在存储数据/DB/。 创建这些目录?并让他们写世界。 在类Unix系统?你可以做如下?1.MKDIR-P?chmod-R的数据/DB;+RWX数据在Windows中?您将需要在资源管理器中创建的目录?并设置权限?以允许任何人都可以写的目录。 在这一点上?我们有一个数据库连接?在我们的例子中?它连接到一个SQLite数据库位于内我们的应用程序/数据/目录。 所以?让我们设计一个简单的表格?将举行我们的留言簿条目。 1.-脚本/schema.sqlite.sql的2.-3.-您将需要加载与此SQL数据库架构。 4.5.创建表的留言?6.ID的INTEGER NOT NULL?PRIMARY KEYAUTOINCREMENT的?7.电子邮件VARCHAR?32?NOTNULL默认“noemailtest.8.评论文字为NULL?9.创建的DATETIME NOTNULL10.?;11.12.创建索引“身份证”“留言”?“ID”?;和?使我们可以有一些工作数据框?让我们创建信息?使我们的应用程序有趣的几行。 1.-脚本/data.sqlite.sql的2.-3.-你可以开始填充用下面的SQL语句的数据库。 4.5.INSERT到留言?电子邮件?注释?创建?值6.?ralph.schindlerzend.?7.“你好?”希望你享受这个范例ZF应用程序?“8.的DATETIME?现在?;9.INSERT到留言?电子邮件?注释?创建?值10.?“foobar.?11.“巴兹巴兹巴兹?巴兹巴兹巴兹巴兹BAZ-BAZ巴兹巴兹。 12.的DATETIME?现在?;现在?我们有两个架构和定义一些数据。 让我们一起得到一个脚本?我们现在可以执行建立这个数据库。 当然?这并不需要在生产?但这个脚本将帮助开发人员建立了本地数据库的要求?使他们能够有充分工作的应用程序。 创建含有下列内容的脚本/load.sqlite.php的脚本?1./脚本/load.sqlite.php的2.3./*4.*创建和装载数据库的脚本5.*/6.7./初始化应用程序的路径和自动装填8.定义的?APPLICATION_PATH?9.|定义?APPLICATION_PATH“?真实路径?目录名?_FILE_?。 /应用程序。 “?;10.set_include_path?破灭?PATH_SEPARATOR?阵列?11.APPLICATION_PATH。 /。 /库“?12.get_include_path?13.?;14.“的Zend/装载机/Autoloader.php的”;15.Zend_Loader_Autoloader:的getInstance?;16.17./定义一些CLI选项18.getopt的=新Zend_Console_Getopt的?阵列?19.“withdata|W=与样本数据加载数据库“?20.ENV|ES=应用环境?为创建数据库?默认的发展?“?21.“帮助|H=帮助-使用消息“?22.?;23.尝试24.$getopt的-的parse?;25.渔获?Zend_Console_Getopt_Exception$?26./错误选项通过?报告使用27.回声$E-getUsageMessage?;28.返回false;29.30.31./如果请求帮助?报告使用消息32.?$getopt的-getOption?H?33.呼应美元getopt的-getUsageMessage?;34.返回true;35.36.37./初始化基于CLI选项的存在或没有值38.美元withData=$getopt的-getOption?“W”?;39.$ENV=$getopt的-getOption?E?;40.定义的?APPLICATION_ENV?41.|定义?APPLICATION_ENV“?空=$ENV?发展?$ENV?;42.43./初始化Zend_Application的44.应用=新Zend_Application?美元45.APPLICATION_ENV?46.APPLICATION_PATH。 /CONFIGS/的application.ini47.?;48.49./初始化和检索数据库资源50.引导=$应用-getBootstrap?;51.为引导-引导?“DB”?;52.美元dbAdapter=$引导-的getResource?“DB”?;53.54./让用户知道什么?我们实际上是创建一个55./数据库在这里?56.?“测试”?=APPLICATION_ENV?57.回声“编写数据库留言簿?Control-C来取消?”。 PHP_EOL;58.?$=5;$X0;$X-?59.回声$X“R“;睡眠?1?;3./检查看到?如果我们有一个数据库文件已64.$选项=$引导-getOption?资源?;65.$DBFILE=$选项DB参数DBNAME;66.?file_exists?$DBFILE?67.的unlink?$DBFILE?;68.69.70./执行此块加载的实际报表71./模式文件。 72.尝试73.schemaSql美元=file_get_contents?目录名?_FILE_?。 /schema.sqlite.sql?;74./使用直接连接到批量加载SQL75.美元dbAdapter-的getConnection?-EXEC?$schemaSql?的;76.CHMOD?$DBFILE?0666?;77.78.?“测试”?=APPLICATION_ENV?79.回声PHP_EOL;80.回声“数据库创建”;81.回声PHP_EOL;82.83.84.?$withData?85.dataSql美元=file_get_contents?目录名?_FILE_?。 /data.sqlite.sql?;86./使用直接连接到批量加载SQL87.美元dbAdapter-的getConnection?-EXEC?$dataSql?的;88.?“测试”?=APPLICATION_ENV?89.回声“数据加载。 90.回声PHP_EOL;4.的catch?异常$?95.回声“发生错误”。 PHP_EOL;96.回声$E-GETMESSAGE?。 PHP_EOL;97.返回false;98.99.100./一般来说?这个脚本将运行命令行101.返回true;现在?让我们在执行这个脚本。 从终端或DOS命令行?做到以下几点?1.?PHP脚本/load.sqlite.php的-withdata你应该看到类似以下的输出?1.路径/到/ZendFrameworkQuickstart/脚本PHP load.sqlite.php-withdata2.编写数据库留言簿中?Control-C来取消?3.14.数据库中创建5.数据加载。 现在我们有一个完全工作的数据库?为我们的留言申请表。 我们接下来的几个步骤来构建我们的应用程序代码。 这包括建立一个数据源?在我们的例子中?我们将使用Zend_Db_Table?数据映射?数据源连接到我们的域模型。 最后?我们还将创建控制器将与现有条目都显示这个模型和处理新条目。 我们将使用一个?表数据网关连接到我们的数据源;的Zend_Db_Table提供此功能。 上手?让创建的Zend_Db_Table表类。 正如我们已经完成布局和数据库适配器?我们可以使用ZF的工具?以协助?使用该命令创建DB表。 这需要最低限度的两个参数?您要引用的类的名称?通过它?它映射到数据库表。 1.?ZF创建DB表留言簿留言2.创建一个应用程序/模型/DBTABLE/Guestbook.php的DBTABLE3.更新工程项目简介“zfproject.xml在寻找你的目录树?你会看到?创建一个新的目录?应用程序/模型/DBTABLE/?文件Guestbook.php的。 如果你打开该文件时?你会看到以下内容?1./应用程序/模型/DBTABLE/Guestbook.php2.3./*4.*这是留言表DBTABLE类的。 5.*/6.类Application_Model_DbTable_Guestbook延伸Zend_Db_Table_Abstract7.8./*表名*/9.保护美元的_name=留言;10.注意类前缀?Note theclass prefix:Application_Model_DbTable的Application_Model_DbTable。 .The classprefix forour module,Application,is thefirst segment,and thenwe havethe ponent,Model_DbTable;the latteris mappedto themodels/DbTable/directory ofthe module.All thatis trulynecessary whenextending Zend_Db_Table isto providea tablename andoptionally theprimary key(if itis notid).Now lets create a?Data Mapper.A DataMapper mapsa domainobject tothe database.In ourcase,it willmap our model,Application_Model_Guestbook,to ourdata source,Application_Model_DbTable_Guestbook.A typicalAPI for a datamapper isas follows:1./application/models/GuestbookMapper.php2.3.class Application_Model_GuestbookMapper4.5.public functionsave($model);6.public functionfind($id,$model);7.public functionfetchAll();8.In additionto thesemethods,well addmethods forsetting andretrieving theTable DataGateway.To createthe initialclass,use thezf CLItool:1.%zf createmodel GuestbookMapper2.Creating amodel atapplication/models/GuestbookMapper.php3.Updating projectprofile.zfproject.xmlNow,edit theclass Application_Model_GuestbookMapper foundinapplication/models/GuestbookMapper.php toread asfollows:1./application/models/GuestbookMapper.php2.3.class Application_Model_GuestbookMtected$_dbTable;6.7.public functionsetDbTable($dbTable)8.9.if(is_string($dbTable)10.$dbTable=new$dbTable();11.12.if(!$dbTable instanceofZend_Db_Table_Abstract)13.throw newException(Invalid tabledata gatewayprovided);14.15.$this-_dbTable=$dbTable;16.return$this;17.18.19.public functiongetDbTable()20.21.if(null=$this-_dbTable)22.$this-setDbTable(Application_Model_DbTable_Guestbook);23.24.return$this-_dbTable;25.26.27.public functionsave(Application_Model_Guestbook$guestbook)28.29.$data=array(30.email=$guestbook-getEmail(),31.ment=$guestbook-getComment(),32.created=date(Y-m-d H:i:s),33.);34.35.if(null=($id=$guestbook-getId()36.unset($dataid);37.$this-getDbTable()-insert($data);38.else39.$this-getDbTable()-update($data,array(id=?=$id);3.public functionfind($id,Application_Model_Guestbook$guestbook)44.45.$result=$this-getDbTable()-find($id);46.if(0=count($result)47.r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论