Codelgniter4中文手册,版本4.0.0 ParseError syntax error,unexpected ]'expecting':' APPPATH/Controllers/Home-php st ine 8 e7php nanespaoe App\Controllersl publie function index() Backtrace Srver Pecest Respono Fis Momory 1.SYSTEMPATHAuolnder/Autoloader.php:206-CodolgniterutoloaderAutoloadeerequreFe(arguments) (trm(61an,nnp0m》=0》 substr(folass,strien(Snameepace))).php'1 296 社nena-a->requireFi生a(华1 ePath月 2w7 (ilenaso) return 这里有几件事要注意: 1.将鼠标悬停在顶部的红色标题上会显示一个搜索链接,该链接将在新标签页中打 开Google.com并搜索此错误的相关信息。 2.单击Backtrace中任意行上的arguments链接将展开传递到该函数调用中的参数 列表。 页面中的其他内容都是简明易懂的。 现在,我们已经入门了,并了解了一点调试程序的方法,下面让我们开始构建这个小型 新闻应用吧。 3.1.构建你的第一个应用 33
CodeIgniter4 中文手册, 版本 4.0.0 这里有几件事要注意: 1. 将鼠标悬停在顶部的红色标题上会显示一个 搜索链接,该链接将在新标签页中打 开 Google.com 并搜索此错误的相关信息。 2. 单击 Backtrace 中任意行上的 arguments 链接将展开传递到该函数调用中的参数 列表。 页面中的其他内容都是简明易懂的。 现在,我们已经入门了,并了解了一点调试程序的方法,下面让我们开始构建这个小型 新闻应用吧。 3.1. 构建你的第一个应用 33
章节4 概览和常规主题 4.1 Codelgniter4概览 以下内容描述了CodeIgniter4背后的架构理念: 4.1.1应用结构 为了可以充分利用CodeIgniter,你需要了解应用程序的结构,默认情况下,你可以更 改内容以满足你的应用程序的需求。 默认目录 新安装的应用程序中有六个目录:/app,/system,/public,/writable,./tests和 /docs。这些目录中的每一个都有一个非常具体的使用规范。 app app目录是你所有应用程序代码所在的目录。它带有一个默认的目录结构,适用于许多 应用程序。以下文件夹构成基本内容: /app /Config Stores the configuration files /Controllers Controllers determine the program flow /Database Stores the database migrations and seeds files /Filters Stores filter classes that can run before andu -after controller (下页继续) 35
章节 4 概览和常规主题 4.1 CodeIgniter4 概览 以下内容描述了 CodeIgniter4 背后的架构理念: 4.1.1 应用结构 为了可以充分利用 CodeIgniter,你需要了解应用程序的结构,默认情况下,你可以更 改内容以满足你的应用程序的需求。 默认目录 新安装的应用程序中有六个目录:/app,/system,/public,/writable,/tests 和 /docs。这些目录中的每一个都有一个非常具体的使用规范。 app app 目录是你所有应用程序代码所在的目录。它带有一个默认的目录结构,适用于许多 应用程序。以下文件夹构成基本内容: /app /Config Stores the configuration files /Controllers Controllers determine the program flow /Database Stores the database migrations and seeds files /Filters Stores filter classes that can run before and␣ ,→after controller (下页继续) 35
Codelgniter4中文手册,版本4.0.0 (续上页) /Helpers Helpers store collections of standalone functions /Language Multiple language support reads the languageu -strings from here /Libraries Useful classes that don't fit in another category /Models Models work with the database to represent theu -business entities. /ThirdParty ThirdParty libraries that can be used inu -application /Views Views make up the HTML that is displayed to theu client. 由于pp目录已经是命名空间,因此你可以随意修改此目录的结构以满足应用程序的 需要。例如,你可能决定开始使用存储库模式和实体模型来处理数据。在这种情况下, 你可以将Models目录重命名为Repositories,并添加新Entities目录。 注解:如果重命名Controllers目录,则无法使用路由到控制器的自动方法,并且需 要在你的路由文件中定义所有路由。 此目录中的所有文件都位于App命名空间下,你可以在app/Config/Constants.php 文件中自由更改。 system 该目录存储构成框架的文件本身。虽然你在使用应用程序目录方面具有很大的灵活性, 但系统目录中的文件永远不应该被修改。相反,你应该扩展类或创建新类,以提供所需 的相应功能。 此目录中的所有文件都位于CodeIgniter命名空间下。 public public文件夹包含Web应用程序的浏览器可以直接访问的地址,防止源代码的直接访 问。它包含主要的htaccess文件,index.php以及其它你想要添加的样式文件地址, 比如CSS,javascript或图像。 这个文件夹将成为你站点的”Web根目录”,并且你的Web服务器配置将指向它。 writable 此目录包含在应用程序生命周期中可能需要写入的所有目录。包括用于存储缓存文件, 日志和任何用户可能发送使用的目录。你可以在此处添加应用程序需要写入的任何其 他目录。这允许你将其他主目录保持为不可写,作为附加的安全措施。 36 章节4.概览和常规主题
CodeIgniter4 中文手册, 版本 4.0.0 (续上页) /Helpers Helpers store collections of standalone functions /Language Multiple language support reads the language␣ ,→strings from here /Libraries Useful classes that don't fit in another category /Models Models work with the database to represent the␣ ,→business entities. /ThirdParty ThirdParty libraries that can be used in␣ ,→application /Views Views make up the HTML that is displayed to the␣ ,→client. 由于 app 目录已经是命名空间,因此你可以随意修改此目录的结构以满足应用程序的 需要。例如,你可能决定开始使用存储库模式和实体模型来处理数据。在这种情况下, 你可以将 Models 目录重命名为 Repositories,并添加新 Entities 目录。 注解: 如果重命名 Controllers 目录,则无法使用路由到控制器的自动方法,并且需 要在你的路由文件中定义所有路由。 此目录中的所有文件都位于 App 命名空间下,你可以在 app/Config/Constants.php 文件中自由更改。 system 该目录存储构成框架的文件本身。虽然你在使用应用程序目录方面具有很大的灵活性, 但系统目录中的文件永远不应该被修改。相反,你应该扩展类或创建新类,以提供所需 的相应功能。 此目录中的所有文件都位于 CodeIgniter 命名空间下。 public public 文件夹包含 Web 应用程序的浏览器可以直接访问的地址,防止源代码的直接访 问。它包含主要的 .htaccess 文件,index.php 以及其它你想要添加的样式文件地址, 比如 CSS,javascript 或图像。 这个文件夹将成为你站点的”Web 根目录”,并且你的 Web 服务器配置将指向它。 writable 此目录包含在应用程序生命周期中可能需要写入的所有目录。包括用于存储缓存文件, 日志和任何用户可能发送使用的目录。你可以在此处添加应用程序需要写入的任何其 他目录。这允许你将其他主目录保持为不可写,作为附加的安全措施。 36 章节 4. 概览和常规主题
Codelgniter4中文手册,版本4.0.0 tests 此目录设置为测试文件的存储地址。_support目录包含各种模拟类和其他在编写测试 时可以使用的实用程序。该目录请在生产环境中忽略提交/传输到生产环境中。 docs 如果此目录是你项目中的一部分,那么此目录包含CodeIgniter4用户指南的本地副本。 修改目录位置 如果你需要重定位任何主目录位置,可以在app/Config/Paths更改配置。 详情请参考管理你的应用 4.1.2模型,视图和控制器 当创建一个应用的时候,我们需要找到一种组织代码的方法,使其易于找到正确的文 件并且易于维护。和很多Web框架类似,CodeIgnite框架也使用了模型、视图、控制 器结构,即MVC模式,来组织接着代码文件。这种方式可以将数据,展示部分和流程 部分分别作为单独的部分存放在我们的应用中。需要注意的是,对于每一个元素的所 担任的角色会有很多种看法,本文描述了我们对此的看法。如果你有不同的看法,则可 以根据需要随意修改使用方式。 模型主要用来管理应用的数据,根据应用的特殊业务规则获取数据。 视图是一个没有或者少量逻辑的简单的文件,它只负责将数据展示给用户。 控制器主要承担了胶水代码的功能,它主要在视图层和数据存储之间来回的处理并整合 数据。 在最简单的情况下,控制器和模型只是一个完成特定工作的类。他们虽然不是你可以 使用的唯一类的类型,但他们是构成整个框架的核心。你也可以将控制器和模型文件 存储在任何你需要的位置,但是CodeIgnite框架在/app目录中为我们指定了存储目 录。我们将在之后进行详细讨论。 下面我们就来看一下这三个主要组成部分。 组成 视图 视图是最简单的文件,一个视图文件通常是一个HTML文件加入少量的PHP代码。 视图中的PHP代码应该尽可能的简单,一般只是显示一个变量内容,或者通过循环语 句将数据输出在表格中展示出来。 4.1.Codelgniter4概览 37
CodeIgniter4 中文手册, 版本 4.0.0 tests 此目录设置为测试文件的存储地址。_support 目录包含各种模拟类和其他在编写测试 时可以使用的实用程序。该目录请在生产环境中忽略提交/传输到生产环境中。 docs 如果此目录是你项目中的一部分,那么此目录包含 CodeIgniter4 用户指南的本地副本。 修改目录位置 如果你需要重定位任何主目录位置,可以在 app/Config/Paths 更改配置。 详情请参考 管理你的应用 4.1.2 模型,视图和控制器 当创建一个应用的时候,我们需要找到一种组织代码的方法,使其易于找到正确的文 件并且易于维护。和很多 Web 框架类似,CodeIgnite 框架也使用了模型、视图、控制 器结构,即 MVC 模式,来组织接着代码文件。这种方式可以将数据,展示部分和流程 部分分别作为单独的部分存放在我们的应用中。需要注意的是,对于每一个元素的所 担任的角色会有很多种看法,本文描述了我们对此的看法。如果你有不同的看法,则可 以根据需要随意修改使用方式。 模型主要用来管理应用的数据, 根据应用的特殊业务规则获取数据。 视图是一个没有或者少量逻辑的简单的文件, 它只负责将数据展示给用户。 控制器主要承担了胶水代码的功能, 它主要在视图层和数据存储之间来回的处理并整合 数据。 在最简单的情况下,控制器和模型只是一个完成特定工作的类。他们虽然不是你可以 使用的唯一类的类型,但他们是构成整个框架的核心。你也可以将控制器和模型文件 存储在任何你需要的位置,但是 CodeIgnite 框架在 /app 目录中为我们指定了存储目 录。我们将在之后进行详细讨论。 下面我们就来看一下这三个主要组成部分。 组成 视图 视图是最简单的文件,一个视图文件通常是一个 HTML 文件加入少量的 PHP 代码。 视图中的 PHP 代码应该尽可能的简单,一般只是显示一个变量内容,或者通过循环语 句将数据输出在表格中展示出来。 4.1. CodeIgniter4 概览 37
Codelgniter4中文手册,版本4.0.0 视图从控制器中获取数据并展示一控制器将数据发送给视图,视图通过简单的echo 调用将数据展示出来。你也可以在一个视图中插入展示其他视图,这样可以很简单的 在每个页面上展示出公共的页眉和页脚。 视图文件通常存放在/app/Views目录下,如果在创建文件时不按照一定的规则创建 的话,会显得我们的代码杂乱无章。Codelgnite框架虽然没有规定任何的规则,但通 过经验我们规定在Views目录下创建一个新的目录对应每个控制器。然后通过方法名 来命名视图。这样就会使我们之后查找起来更加容易。例如:用户配置可能会显示在 一个名为User的控制器中,并且方法名称为profi1e,你就可以将该视图文件保存在 /app/Views/User/Profile.php这个路径下,并这样命名。 这种良好的组织代码方式建议养成一个习惯。可能有些时候,你有一些其他需求需要 以其他方式来组织代码,没关系,只要CodeIgnite框架可以找到这个文件,这个视图 就会被显示。 点击这里阅读更多关于视图的相关内容 模型 对于许多开发人员而言,在确定执行哪些业务规则时会困惑。模型的主要任务是给应 用维护单一类型的数据。比如:用户,博客内容,交易信息等。所以,模型的工作有以 下两种,对数据进行采集或者放入数据库中执行业务规则;检索数据并将数据库中的 数据读取出来。也就是进行数据的增删改查的操作。 数据的任何限制和要求都由模型层承担,包括在保存数据前将原始数据初始化,或者 在数据传给控制器前将数据格式化。这样可以保证你可以不用在多个控制器中出现重 复代码,或者出错。 模型类型的文件保存在/app/Models这个目录下,虽然他们也可以使用一个命名空 间分组,但是还是建议你将模型文件放在这个目录下。 点击这里阅读更多关于模型的相关内容 控制器 控制器主要承担了几个不同的角色。最常见的就是他们会接收用户的请求,然后判断 这个请求应该执行什么样的操作。而这一过程通常会涉及到将数据发送给模型层保存, 或者去请求模型层的数据返回给视图。控制器也会用来加载其他应用程序请求的除模 型参与的任务。 控制器的林外的任务就是用来处理和HTTP请求相关的所有事情一重定向、认证, Wb安全,编码等。总之,控制器是你的应用程序的入口,通过控制器访问你的应用 的用户才可以到达指定的地方并获取他们想要的数据使用格式。 控制器通常会保存在/app/Controllers这个路径下,虽然你也可以使用命名空间分 组,但是还是建议你将控制器存放在该目录下。 点击这里阅读更多关于控制器的相关内容 38 章节4.概览和常规主题
CodeIgniter4 中文手册, 版本 4.0.0 视图从控制器中获取数据并展示——控制器将数据发送给视图,视图通过简单的 echo 调用将数据展示出来。你也可以在一个视图中插入展示其他视图,这样可以很简单的 在每个页面上展示出公共的页眉和页脚。 视图文件通常存放在 /app/Views 目录下,如果在创建文件时不按照一定的规则创建 的话,会显得我们的代码杂乱无章。CodeIgnite 框架虽然没有规定任何的规则,但通 过经验我们规定在 Views 目录下创建一个新的目录对应每个控制器。然后通过方法名 来命名视图。这样就会使我们之后查找起来更加容易。例如:用户配置可能会显示在 一个名为 User 的控制器中, 并且方法名称为 profile ,你就可以将该视图文件保存在 /app/Views/User/Profile.php 这个路径下,并这样命名。 这种良好的组织代码方式建议养成一个习惯。可能有些时候,你有一些其他需求需要 以其他方式来组织代码,没关系,只要 CodeIgnite 框架可以找到这个文件,这个视图 就会被显示。 点击这里阅读更多关于视图的相关内容 模型 对于许多开发人员而言,在确定执行哪些业务规则时会困惑。模型的主要任务是给应 用维护单一类型的数据。比如:用户,博客内容,交易信息等。所以,模型的工作有以 下两种,对数据进行采集或者放入数据库中执行业务规则;检索数据并将数据库中的 数据读取出来。也就是进行数据的增删改查的操作。 数据的任何限制和要求都由模型层承担,包括在保存数据前将原始数据初始化,或者 在数据传给控制器前将数据格式化。这样可以保证你可以不用在多个控制器中出现重 复代码,或者出错。 模型类型的文件保存在 /app/Models 这个目录下,虽然他们也可以使用一个命名空 间分组,但是还是建议你将模型文件放在这个目录下。 点击这里阅读更多关于模型的相关内容 控制器 控制器主要承担了几个不同的角色。最常见的就是他们会接收用户的请求,然后判断 这个请求应该执行什么样的操作。而这一过程通常会涉及到将数据发送给模型层保存, 或者去请求模型层的数据返回给视图。控制器也会用来加载其他应用程序请求的除模 型参与的任务。 控制器的林外的任务就是用来处理和 HTTP 请求相关的所有事情——重定向、认证, Web 安全,编码等。总之,控制器是你的应用程序的入口,通过控制器访问你的应用 的用户才可以到达指定的地方并获取他们想要的数据使用格式。 控制器通常会保存在 /app/Controllers 这个路径下, 虽然你也可以使用命名空间分 组,但是还是建议你将控制器存放在该目录下。 点击这里阅读更多关于控制器的相关内容 38 章节 4. 概览和常规主题