前言: Codeigniter 是PHP语言上比较普遍的MVC框架(不懂MVC的请出门左转,那里有教程)。相对而言比较简单,效率较高(一般认为仅次于Phalcon),市场占有率比较高(一般认为仅次于laravel)。缺点是Codeigniter更新不够快,新的内容不够多,比如,csrf等内容就曾经长期没有获得更新。

0.WAMP
注意:codeigniter 4.0.3 需要至少PHP 7.2+的平台。这里选择Wamp安装包。具体安装请参考其他教程。安装后的效果如下

1.安装Codeigniter 4 + visual studio code
与laravel等需要composer的不同,codeigniter 相对比较简单,下载到www即可。

首先,修改文件夹名称,我修改为ci403

打开浏览器,输入http://localhost/ci403/public/,效果如下

这里其实是访问http://localhost/ci403/public/index.php,而其他othercontroller以及对应的方法othermethod的参数otherparam访问都是
http://localhost/ci403/public/index.php/othercontroller/othermothod/otherparam
还有composer进行安装的方法,这里略过。
安装visual studio code(略)。
打开ci403的文件夹,内容如下。

现阶段不需要关注其结构,只需要知道url路径找的public的内容即可
1+.另一种启动方式
app/config/App.php有如下语句

 public $baseURL = 'http://localhost:8080/';

打开ci403的目录,命令行输入php spark serve
然后进入localhost:8080即可。这里略过。

2.修改base_url

 public $baseURL = 'http://localhost/ci403/public/';

备注:路由默认的启动程序相关的都在app/Routers.php中,比如


$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->setAutoRoute(true);$routes->get('/', 'Home::index');
//$routes->get('/site', 'Home::site');

这里的uri的写法是index.php/site去映射Home控制器的sitefunction。

3.helloworld的非正规创建
这里指明了默认的HomeController以及默认的方法。因此,我们基于这一点创建helloworld程序。修改app/Controllers/Home.php如下

<?php namespace App\Controllers;class Home extends BaseController
{public function index(){echo '<h1>Hello Codeigniter 4.0.3<h1>';}
}

效果如下:

进一步修改app/config/Routers.php

$routes->get('/', 'Home::hello');

修改app/Controllers/Home.php

<?php namespace App\Controllers;class Home extends BaseController
{public function index(){// return view('welcome_message');echo '<h1>Hello Codeigniter 4.0.3<h1>';}//--------------------------------------------------------------------public function hello(){echo '<h1>Hello codeigniter 4-0-3<h1>';}
}


创建一个新的默认Controller,修改app/Config/Routers.php


$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('MyHome');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->setAutoRoute(true);$routes->get('/', 'MyHome::index');

然后,创建app/Controllers/MyHome.php

<?php namespace App\Controllers;class MyHome extends BaseController
{public function index(){// return view('welcome_message');echo '<h1>Hello My NEW HOME Codeigniter 4.0.3<h1>';}//--------------------------------------------------------------------public function hello(string $name){echo '<h1>Hello codeigniter 4-0-3 from <h1>'.$name;}
}

效果如下:

3+通过url输入参数给方法
以及手动访问MyHome的hello方法,同时传进去一个参数you。
http://localhost/ci403/public/index.php/MyHome/hello/you

4.Hellworld的正规创建(通过view)
app/Controllers/MyHome.php

<?php namespace App\Controllers;class MyHome extends BaseController
{public function index(){// return view('welcome_message');// echo '<h1>Hello My NEW HOME Codeigniter 4.0.3<h1>';return view('myhello');}//--------------------------------------------------------------------public function hello(string $name){echo '<h1>Hello codeigniter 4-0-3 from <h1>'.$name;}
}

app/Views/myhello.php

<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>My Hello world
</body>
</html>

效果如下

5.controller传递参数给view
app/views/myhello.php

<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>
My Hello world from <?php echo var_dump($data);?></body>
</html>

app/Controllers/MyHome.php

<?php namespace App\Controllers;class MyHome extends BaseController
{public function index(){$mydata['data'] = [1,2,3];return view('myhello',$mydata);}public function hello(string $name='yyyy'){$myname['data'] = array('one'=>'2','two'=>$name,);return view('myhello',$myname);}
}

效果如下:

最后,给一个url传递数据的例子
http://localhost/ci403/public/index.php/MyHome/hello/zzzz

再补充一个小的写法, 使用到了compact函数来把多个独立的变量进行打包发送。

<?php namespace App\Controllers;class MyHome extends BaseController
{public function index(){$mydata['data'] = [1,2,3];return view('myhello',$mydata);}public function hello(string $name='yyyy'){$myname['data'] = array('one'=>'2','two'=>$name,);return view('myhello',$myname);}public function hello(){$name='yy';$email = 'yy@yy.com';$age = 30;return view('myhello',compact($name, $email, $age));}
}

齐活。

Codeigniter 4基础教程(1)-- Wamp+CodeIgniter 4以及helloworld相关推荐

  1. php基础教程 第一步 环境配置及helloworld

    PHP 是服务器端脚本语言.全称为 Hypertext Preprocessor 为超文本预处理器. 据说php8不久后也要发布了,趁着8还没有发布赶紧写一个php5到php7(在基础教程写完后将写p ...

  2. Codeigniter 4基础教程(2)-- 版本差异,模板,一个form例子

    0.版本差异 Codeigniter 4 与Codeigniter 3差异比较大,比如v3中的 $this->load->view('hello'); 就会报错. 另外,开发过程中,建议开 ...

  3. Ardino基础教程 1_让Arduino说出HelloWorld

    实验一:让Arduino说出HelloWorld 首先先来练习一个不需要其他辅助元件,只需要一块Arduino 和一根下载线的简单实验,让我们的Arduino 说出"Hello World! ...

  4. go语言零基础教程:第一个程序:HelloWorld

    一.go项目工程结构 配置好工作目录后,就可以编码开发了,在这之前,我们看下go的通用项目结构,这里的结构主要是源代码相应地资源文件存放目录结构. 1.1 gopath目录 gopath目录就是我们存 ...

  5. Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

    自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...

  6. [SQL基础教程] 1-5 表的删除和更新

    [SQL基础教程] 1-5 表的删除和更新 表的删除 语法 DROP TABLE <表名>; 法则 1-12 删除的表无法恢复 表定义的更新 语法 ALTER TABLE<表名> ...

  7. python 包用法_Python 基础教程之包和类的用法

    Python 基础教程之包和类的用法 这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido ...

  8. Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0

    Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0 昨晚Nacos社区发布了第一个生产级版本:0.8.0.由于该版本除了Bug修复之外,还提供了几个生产管理非常重要 ...

  9. Python培训基础教程都教哪些

    根据相关数据统计,目前学习Python技术的同学大多数是零基础,都是从其他行业转型来学习的,那么Python培训基础教程都教哪些呢?好不好学呢?来看看下面的详细介绍. Python培训基础教程都教哪些 ...

  10. 深度学习之Pytorch基础教程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...

最新文章

  1. Python+OpenCV创建级联文件(Windows7/10环境)
  2. SAP Link Between Material Document and Accounting Document Table
  3. IP地址,子网掩码、默认网关,DNS理论解释
  4. Mq安装服务器文件传输,RabbitMQ学习:安装RabbitMQ及RabbitMQ的初步配置(一)
  5. OpenStack 的部署T版(一)——基础环境配置
  6. 非安装版的PostgreSQL8.3.3的首次使用经历
  7. apache ab压力测试报错
  8. 图像分类_PyTorch图像数据分类
  9. 微会显示服务器当前线路忙,免费电话之争:触宝电话/微会谁更强
  10. 20135320赵瀚青LINUX内核分析第一周学习笔记
  11. c 语言 封装dll_C#封装YOLOv4算法进行目标检测
  12. Pycharm连接Mysql问题: Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon
  13. 可视化图布局算法简介
  14. 最新计算机毕业设计源码开源啦,java毕业设计,python毕业设计,c++毕业设计,php毕业设计,Android毕业设计,小程序毕业设计
  15. c语言程序设计流程图案例
  16. cdh 6.x、cdh 5.16.x、cdh 5.15.x、cdh 5.14.x、cdh 5.12.x组件对应版本
  17. 面试专题-电商项目面试篇
  18. c++调用python详细教程
  19. Android Hawk数据库 github开源项目,深入理解JVM的核心知识点
  20. 有关戴尔服务器信息的公众号,戴尔DELL

热门文章

  1. 《Spring Cloud Netflix》--服务注册和服务发现-Eureka的深入了解
  2. ftp服务器文件不让上传,ftp服务器不让上传文件
  3. 照片怎么加水印,照片加水印操作步骤
  4. 深圳率先立法:支持L3自动驾驶上路,凡公开道路皆可行
  5. Foxmail登录网易邮箱提示LOGIN Login error user suspended
  6. 基于C#的ico图标制作与应用
  7. 人工智能(7)---一文读懂人脸识别技术:商业应用、产品落地、核心技术、市场规模
  8. VTK笔记-图形相关-两个平面上的多边形+三角带=闭合多边形(棱柱体)
  9. (附源码)springboot垃圾自动分类管理系统 毕业设计 160846
  10. python 导入自定义的包