gpt4 book ai didi

codeigniter - CodeIgniter 的正确命名结构

转载 作者:行者123 更新时间:2023-12-03 12:24:50 32 4
gpt4 key购买 nike

我正在开始我的第一个 CodeIgniter 项目,并希望在开始之前获得一些建议。我对 Controller 和模型的名称如何工作感到有些困惑。

如果我希望我公司页面的网址为 http://example.com/Company/view

Controller 需要调用 Company.php 正确吗?
在公司 Controller 内部,它看起来像这样:

public function viewAll()
{
$this->load->model('Companymodel');
$this->load->view('templates/header');
$data['result'] = $this->Companymodel->viewAll();
$this->load->view('company/viewAll', $data);
$this->load->view('templates/footer');
}

好的,我在这里感到困惑,在上面的第 4 行:
$this->load->model('Companymodel');

这个对公司模型页面的调用需要第一个字母大写,其余的小写?

如果这是正确的,模型文件是否需要称为 Companymodel.php 并放置在 application/models 文件夹中?

调用 Controller 和模型相同是不好的做法吗

示例:Company.php 并将其放在/application/controller/中
然后将模型命名为 Company.php 并将其放置在应用程序/模型中,或者该模型应命名为 Companymodel.php

我想我的最终问题是 Controller 和模型文件的命名约定,以及它们是否可以大写。

最佳答案

网址

您的 URL 通常应全部为小写字母。如果您期望大写字母,您可能会意外排除小写字母,即使它们是相同的 URL。示例:www.example.com/controller/method/param
Controller

Controller 类名称应全部小写,第一个字母除外。

  • 如果您的网址是 www.example.com/gallery , Controller 名称为 Gallery .
  • 如果您的网址是 www.example.com/admin_folder , Controller 名称为 Admin_folder .

  • Controller 文件名应与类名匹配,但全部小写。
  • 画廊:: gallery.php
  • Admin_folder::admin_folder.php

  • Controller 方法也应该全部小写。大写字母有一定的灵活性,但与 URL 类似,它也有可能出错( here's an example,其中大写字母干扰了表单验证回调方法)。

    楷模

    模型遵循与 Controller 相同的大部分约定。唯一的区别是模型方法名称,它可以使用您对大写的偏好。由于这些方法与 URL 无关,并且使用普通的 PHP OOP 调用,因此您可以随意命名它们。

    建议使用全小写版本加载模型。虽然 CI 不需要它,但如果他们使用大写字母加载它,它会混淆一些用户,然后尝试以全部小写形式访问它(这是由于 native PHP 对类属性 [和一般变量] 区分大小写) ,而不是 CodeIgniter)。
  • 模型类名:Users_model (_model 后缀也不是必需的,但有些人可能将其用作个人偏好,或防止与 Users Controller 发生命名冲突)。
  • 模型文件名:users_model.php
  • 模型加载:$this->load->model('users_model')
  • 模型方法名称(一切正常):$this->users->getAll() , $this->users->find_by_name($name)

  • 图书馆

    图书馆遵循相同的约定 除了 为文件名。在这种情况下,文件名应该与类名匹配。

    与模型类似,建议使用小写名称加载库。

    这些规则对于 CI 的库(位于 application/coreapplication/libraries 以及自定义或第三方库中)是相同的。

    特别提示:扩展默认 CI 库时,前缀定义在 application/config.php发挥作用。此前缀通常应全部为大写,后跟下划线。默认为 MY_ .
  • 库类名:Photos
  • 库文件名:Photos.php ,
  • 库负载:$this->load->library('photos')

  • helper

    助手名称和加载都是小写的。文件名由带有 _helper 的助手名称组成。之后附加。
  • helper 名称:url
  • 帮助文件名:url_helper.php
  • 辅助负载:$this->load->helper('url')

  • 笔记

    CodeIgniter 的命名约定有些不一致,但确实没有太多的规则,所以它们很容易习惯和内存。我很少在 CI 中遇到命名和加载问题,当我这样做时,通常是因为我只是在做一个与 Composer 相关的项目,所以我养成了不同的习惯。

    在撰写本文时,此答案中的规则适用于 CodeIgniter 2.1.x。 Github 上有讨论 3.0 to better and add more consistency to naming conventions ,如果您愿意,您可以阅读相关内容并做出贡献。

    关于codeigniter - CodeIgniter 的正确命名结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16970803/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com