




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用PHP的Yii框架的gii自动代码生成工具,可以为我们生成控制器、数据库操作、表单、模型和模块代码,在使用模块代码生成器生成模块代码后,模块却无法执行,不知道大家是否也遇到过该问题。首先,使用gii自动代码生成工具生成module代码,代码会自动生成在项目工程中:使用“Module Generator”生成模块代码后,会自动将生成的模块代码嵌入项目工程中,如下:代码生成后,运行该模块,报错:意思是找不到Controller.php文件,那什么地方使用了该文件呢?在自动生成的模板文件中,controllers文件夹下的DefaultController.php文件继承了Controller类,导致该错误产生:phpview plaincopyprint?1. render(index);8. 9. 真奇怪,gii自动生成的代码,居然找不到Yii framework的系统文件。那为什么在创建Yii工程时,默认生成的controller.php文件不会报这个错误呢?因为该文件继承的是CController类,而不是Controller类。而且,在index.php中,还添加了yii.php和main.php文件的引用。比如,在Yii提供的实例代码Hangman中,自动生成的GameController.php,部分代码如下:phpview plaincopyprint?1. classGameControllerextendsCController2. 3. /*4. *varstringsetsthedefaultactiontobeplay5. */6. public$defaultAction=play;它继承了CController类,而不是Controller类。为什么继承了CController类不会报错,而继承了Controller类就会报错呢?还得从Yii的核心类自动加载机制说起,一般来说,创建好Yii工程后,会生成一个index.php文件,文件内容大概如下:phpview plaincopyprint?1. run();通常,我们会把yii框架的framework文件夹放置在项目工程的protected文件夹下,见上面的工程目录图。这时我们要修改一下$yii的目录为:phpview plaincopyprint?1. $yii=dirname(_FILE_)./protected/framework/yii.php;为什么要加载这个yii.php文件呢,因为它是Yii框架的起始执行文件,文件内容如下:phpview plaincopyprint?1. ?php2. /*3. *Yiibootstrapfile.4. *5. *authorQiangXue6. *link/7. *copyright2008-2013YiiSoftwareLLC8. *license/license/9. *packagesystem10. *since1.011. */12. 13. require(dirname(_FILE_)./YiiBase.php);14. 15. /*16. *Yiiisahelperclassservingcommonframeworkfunctionalities.17. *18. *ItencapsulateslinkYiiBasewhichprovidestheactualimplementation.19. *BywritingyourownYiiclass,youcancustomizesomefunctionalitiesofYiiBase.20. *21. *authorQiangXue22. *packagesystem23. *since1.024. */25. classYiiextendsYiiBase26. 27. 注意,yii.php中的:phpview plaincopyprint?1. require(dirname(_FILE_)./YiiBase.php);加载YiiBase.php文件,关键就在该文件中,查阅一下该文件代码,我们只看关键的几处,如下是定义Yii框架的目录位置:phpview plaincopyprint?1. /*2. *DefinestheYiiframeworkinstallationpath.3. */4. defined(YII_PATH)ordefine(YII_PATH,dirname(_FILE_);5. /*6. *DefinestheZiilibraryinstallationpath.7. */8. defined(YII_ZII_PATH)ordefine(YII_ZII_PATH,YII_PATH.DIRECTORY_SEPARATOR.zii);一旦我们在index.php添加了yii.php的引用,Yii框架本身就知道了它在文件系统中的具体位置。既然Yii框架已经知道了自己的位置,为什么还会出现找不到框架文件的情况呢?这是因为Yii是一个高效框架,体现在它的懒加载(lazy load)模式,即,引用的文件只有在使用到时才会加载,未使用到不加载。但是如果什么都不加载,似乎框架要运行不起来吧。所以,为了提高Yii框架的运行效率,它使用了一种核心类自动加载的机制,即最常用、最核心的框架文件,在Yii框架运行时先加载上来。那么,核心类有哪些呢?在YiiBase.php文件中有定义:phpview plaincopyprint?1. /*2. *vararrayclassmapforcoreYiiclasses.3. *NOTE,DONOTMODIFYTHISARRAYMANUALLY.IFYOUCHANGEORADDSOMECORECLASSES,4. *PLEASERUNbuildautoloadCOMMANDTOUPDATETHISARRAY.5. */6. privatestatic$_coreClasses=array(7. CApplication=/base/CApplication.php,8. CApplicationComponent=/base/CApplicationComponent.php,9. CBehavior=/base/CBehavior.php,10. CComponent=/base/CComponent.php,11. CErrorEvent=/base/CErrorEvent.php,12. CErrorHandler=/base/CErrorHandler.php,13. CException=/base/CException.php,14. CExceptionEvent=/base/CExceptionEvent.php,15. CHttpException=/base/CHttpException.php,16. CModel=/base/CModel.php,17. CModelBehavior=/base/CModelBehavior.php,18. CModelEvent=/base/CModelEvent.php,19. CModule=/base/CModule.php,20. CSecurityManager=/base/CSecurityManager.php,21. CStatePersister=/base/CStatePersister.php,22. CApcCache=/caching/CApcCache.php,23. CCache=/caching/CCache.php,24. CDbCache=/caching/CDbCache.php,25. CDummyCache=/caching/CDummyCache.php,26. CEAcceleratorCache=/caching/CEAcceleratorCache.php,27. CFileCache=/caching/CFileCache.php,28. CMemCache=/caching/CMemCache.php,29. CRedisCache=/caching/CRedisCache.php,30. CWinCache=/caching/CWinCache.php,31. CXCache=/caching/CXCache.php,32. CZendDataCache=/caching/CZendDataCache.php,33. CCacheDependency=/caching/dependencies/CCacheDependency.php,34. CChainedCacheDependency=/caching/dependencies/CChainedCacheDependency.php,35. CDbCacheDependency=/caching/dependencies/CDbCacheDependency.php,36. CDirectoryCacheDependency=/caching/dependencies/CDirectoryCacheDependency.php,37. CExpressionDependency=/caching/dependencies/CExpressionDependency.php,38. CFileCacheDependency=/caching/dependencies/CFileCacheDependency.php,39. CGlobalStateCacheDependency=/caching/dependencies/CGlobalStateCacheDependency.php,40. CAttributeCollection=/collections/CAttributeCollection.php,41. CConfiguration=/collections/CConfiguration.php,42. CList=/collections/CList.php,43. CListIterator=/collections/CListIterator.php,44. CMap=/collections/CMap.php,45. CMapIterator=/collections/CMapIterator.php,46. CQueue=/collections/CQueue.php,47. CQueueIterator=/collections/CQueueIterator.php,48. CStack=/collections/CStack.php,49. CStackIterator=/collections/CStackIterator.php,50. CTypedList=/collections/CTypedList.php,51. CTypedMap=/collections/CTypedMap.php,52. CConsoleApplication=/console/CConsoleApplication.php,53. CConsoleCommand=/console/CConsoleCommand.php,54. CConsoleCommandBehavior=/console/CConsoleCommandBehavior.php,55. CConsoleCommandEvent=/console/CConsoleCommandEvent.php,56. CConsoleCommandRunner=/console/CConsoleCommandRunner.php,57. CHelpCommand=/console/CHelpCommand.php,58. CDbCommand=/db/CDbCommand.php,59. CDbConnection=/db/CDbConnection.php,60. CDbDataReader=/db/CDbDataReader.php,61. CDbException=/db/CDbException.php,62. CDbMigration=/db/CDbMigration.php,63. CDbTransaction=/db/CDbTransaction.php,64. CActiveFinder=/db/ar/CActiveFinder.php,65. CActiveRecord=/db/ar/CActiveRecord.php,66. CActiveRecordBehavior=/db/ar/CActiveRecordBehavior.php,67. CDbColumnSchema=/db/schema/CDbColumnSchema.php,68. CDbCommandBuilder=/db/schema/CDbCommandBuilder.php,69. CDbCriteria=/db/schema/CDbCriteria.php,70. CDbExpression=/db/schema/CDbExpression.php,71. CDbSchema=/db/schema/CDbSchema.php,72. CDbTableSchema=/db/schema/CDbTableSchema.php,73. CCubridColumnSchema=/db/schema/cubrid/CCubridColumnSchema.php,74. CCubridSchema=/db/schema/cubrid/CCubridSchema.php,75. CCubridTableSchema=/db/schema/cubrid/CCubridTableSchema.php,76. CMssqlColumnSchema=/db/schema/mssql/CMssqlColumnSchema.php,77. CMssqlCommandBuilder=/db/schema/mssql/CMssqlCommandBuilder.php,78. CMssqlPdoAdapter=/db/schema/mssql/CMssqlPdoAdapter.php,79. CMssqlSchema=/db/schema/mssql/CMssqlSchema.php,80. CMssqlSqlsrvPdoAdapter=/db/schema/mssql/CMssqlSqlsrvPdoAdapter.php,81. CMssqlTableSchema=/db/schema/mssql/CMssqlTableSchema.php,82. CMysqlColumnSchema=/db/schema/mysql/CMysqlColumnSchema.php,83. CMysqlCommandBuilder=/db/schema/mysql/CMysqlCommandBuilder.php,84. CMysqlSchema=/db/schema/mysql/CMysqlSchema.php,85. CMysqlTableSchema=/db/schema/mysql/CMysqlTableSchema.php,86. COciColumnSchema=/db/schema/oci/COciColumnSchema.php,87. COciCommandBuilder=/db/schema/oci/COciCommandBuilder.php,88. COciSchema=/db/schema/oci/COciSchema.php,89. COciTableSchema=/db/schema/oci/COciTableSchema.php,90. CPgsqlColumnSchema=/db/schema/pgsql/CPgsqlColumnSchema.php,91. CPgsqlCommandBuilder=/db/schema/pgsql/CPgsqlCommandBuilder.php,92. CPgsqlSchema=/db/schema/pgsql/CPgsqlSchema.php,93. CPgsqlTableSchema=/db/schema/pgsql/CPgsqlTableSchema.php,94. CSqliteColumnSchema=/db/schema/sqlite/CSqliteColumnSchema.php,95. CSqliteCommandBuilder=/db/schema/sqlite/CSqliteCommandBuilder.php,96. CSqliteSchema=/db/schema/sqlite/CSqliteSchema.php,97. CChoiceFormat=/i18n/CChoiceFormat.php,98. CDateFormatter=/i18n/CDateFormatter.php,99. CDbMessageSource=/i18n/CDbMessageSource.php,100. CGettextMessageSource=/i18n/CGettextMessageSource.php,101. CLocale=/i18n/CLocale.php,102. CMessageSource=/i18n/CMessageSource.php,103. CNumberFormatter=/i18n/CNumberFormatter.php,104. CPhpMessageSource=/i18n/CPhpMessageSource.php,105. CGettextFile=/i18n/gettext/CGettextFile.php,106. CGettextMoFile=/i18n/gettext/CGettextMoFile.php,107. CGettextPoFile=/i18n/gettext/CGettextPoFile.php,108. CChainedLogFilter=/logging/CChainedLogFilter.php,109. CDbLogRoute=/logging/CDbLogRoute.php,110. CEmailLogRoute=/logging/CEmailLogRoute.php,111. CFileLogRoute=/logging/CFileLogRoute.php,112. CLogFilter=/logging/CLogFilter.php,113. CLogRoute=/logging/CLogRoute.php,114. CLogRouter=/logging/CLogRouter.php,115. CLogger=/logging/CLogger.php,116. CProfileLogRoute=/logging/CProfileLogRoute.php,117. CSysLogRoute=/logging/CSysLogRoute.php,118. CWebLogRoute=/logging/CWebLogRoute.php,119. CDateTimeParser=/utils/CDateTimeParser.php,120. CFileHelper=/utils/CFileHelper.php,121. CFormatter=/utils/CFormatter.php,122. CLocalizedFormatter=/utils/CLocalizedFormatter.php,123. CMarkdownParser=/utils/CMarkdownParser.php,124. CPasswordHelper=/utils/CPasswordHelper.php,125. CPropertyValue=/utils/CPropertyValue.php,126. CTimestamp=/utils/CTimestamp.php,127. CVarDumper=/utils/CVarDumper.php,128. CBooleanValidator=/validators/CBooleanValidator.php,129. CCaptchaValidator=/validators/CCaptchaValidator.php,130. CCompareValidator=/validators/CCompareValidator.php,131. CDateValidator=/validators/CDateValidator.php,132. CDefaultValueValidator=/validators/CDefaultValueValidator.php,133. CEmailValidator=/validators/CEmailValidator.php,134. CExistValidator=/validators/CExistValidator.php,135. CFileValidator=/validators/CFileValidator.php,136. CFilterValidator=/validators/CFilterValidator.php,137. CInlineValidator=/validators/CInlineValidator.php,138. CNumberValidator=/validators/CNumberValidator.php,139. CRangeValidator=/validators/CRangeValidator.php,140. CRegularExpressionValidator=/validators/CRegularExpressionValidator.php,141. CRequiredValidator=/validators/CRequiredValidator.php,142. CSafeValidator=/validators/CSafeValidator.php,143. CStringValidator=/validators/CStringValidator.php,144. CTypeValidator=/validators/CTypeValidator.php,145. CUniqueValidator=/validators/CUniqueValidator.php,146. CUnsafeValidator=/validators/CUnsafeValidator.php,147. CUrlValidator=/validators/CUrlValidator.php,148. CValidator=/validators/CValidator.php,149. CActiveDataProvider=/web/CActiveDataProvider.php,150. CArrayDataProvider=/web/CArrayDataProvider.php,151. CAssetManager=/web/CAssetManager.php,152. CBaseController=/web/CBaseController.php,153. CCacheHttpSession=/web/CCacheHttpSession.php,154. CClientScript=/web/CClientScript.php,155. CController=/web/CController.php,156. CDataProvider=/web/CDataProvider.php,157. CDataProviderIterator=/web/CDataProviderIterator.php,158. CDbHttpSession=/web/CDbHttpSession.php,159. CExtController=/web/CExtController.php,160. CFormModel=/web/CFormModel.php,161. CHttpCookie=/web/CHttpCookie.php,162. CHttpRequest=/web/CHttpRequest.php,163. CHttpSession=/web/CHttpSession.php,164. CHttpSessionIterator=/web/CHttpSessionIterator.php,165. COutputEvent=/web/COutputEvent.php,166. CPagination=/web/CPagination.php,167. CSort=/web/CSort.php,168. CSqlDataProvider=/web/CSqlDataProvider.php,169. CTheme=/web/CTheme.php,170. CThemeManager=/web/CThemeManager.php,171. CUploadedFile=/web/CUploadedFile.php,172. CUrlManager=/web/CUrlManager.php,173. CWebApplication=/web/CWebApplication.php,174. CWebModule=/web/CWebModule.php,175. CWidgetFactory=/web/CWidgetFactory.php,176. CAction=/web/actions/CAction.php,177. CInlineAction=/web/actions/CInlineAction.php,178. CViewAction=/web/actions/CViewAction.php,179. CAccessControlFilter=/web/auth/CAccessControlFilter.php,180. CAuthAssignment=/web/auth/CAuthAssignment.php,181. CAuthItem=/web/auth/CAuthItem.php,182. CAuthManager=/web/auth/CAuthManager.php,183. CBaseUserIdentity=/web/auth/CBaseUserIdentity.php,184. CDbAuthManager=/web/auth/CDbAuthManager.php,185. CPhpAuthManager=/web/auth/CPhpAuthManager.php,186. CUserIdentity=/web/auth/CUserIdentity.php,187. CWebUser=/web/auth/CWebUser.php,188. CFilter=/web/filters/CFilter.php,189. CFilterChain=/web/filters/CFilterChain.php,190. CHttpCacheFilter=/web/filters/CHttpCacheFilter.php,191. CInlineFilter=/web/filters/CInlineFilter.php,192. CForm=/web/form/CForm.php,193. CFormButtonElement=/web/form/CFormButtonElement.php,194. CFormElement=/web/form/CFormElement.php,195. CFormElementCollection=/web/form/CFormElementCollection.php,196. CFormInputElement=/web/form/CFormInputElement.php,197. CFormStringElement=/web/form/CFormStringElement.php,198. CGoogleApi=/web/helpers/CGoogleApi.php,199. CHtml=/web/helpers/CHtml.php,200. CJSON=/web/helpers/CJSON.php,201. CJavaScript=/web/helpers/CJavaScript.php,202. CJavaScriptExpression=/web/helpers/CJavaScriptExpression.php,203. CPradoViewRenderer=/web/renderers/CPradoViewRenderer.php,204. CViewRenderer=/web/renderers/CViewRenderer.php,205. CWebService=/web/services/CWebService.php,206. CWebServiceAction=/web/services/CWebServiceAction.php,207. CWsdlGenerator=/web/services/CWsdlGenerator.php,208. CActiveForm=/web/widgets/CActiveForm.php,209. CAutoComplete=/web/widgets/CAutoComplete.php,210. CCl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 祭英雄敬忠魂课件
- 水利水电工程积累经验试题及答案
- 素描茄子美术课件
- 工程效益测算方法试题及答案
- 行政管理公共关系学考试优化试题及答案
- 汽车底盘设计关键技术解析
- 2024年水利水电工程考生回顾试题及答案
- 行政管理中工作的公共关系学试题及答案
- 电子商务平台入驻合同协议规范
- 投资合作协议修订
- 小学生偏旁部首所表示的意义
- 七年级历史上册 第一单元 单元测试卷(人教版 2024年秋)
- 2024版电力服务咨询服务合同范本
- 业务协作费用协议书
- 国家职业资格目录 2023
- 高处作业安全施工方案
- 烧结煤矸石实心砖和多孔砖块用技术标准DBJ-T13-195-2022
- 食品安全知识竞赛考试资料
- 西方古代建筑史 知到智慧树网课答案
- 失禁性皮炎VS压力性损伤课件
- 河北某风电场 9月19日62#风机机舱火灾事故调查报告
评论
0/150
提交评论