为你的网站配置一个小巧的框架( CodeIgniter)

news/2024/5/20 23:51:56/文章来源:https://blog.csdn.net/Lockey23/article/details/78076295

现在的web开发确实已经到了无框架卜欢乐的状态,无论是前端:JavaScript(vue.js\react.js\angular.js框架和jQuery库),CSS(bootstrap),还是后端:PHP(CI/thinkPHP/laravel/YII/),python(Django/Tornado/Flask)都是一片欣欣向荣的景象;这种框架横行的情况在一定程度上说明了这个方向的火热和技术的不断沉淀。“牛逼的人都在写框架,菜鸟都在学习用框架”或许成了这个方向上判定一个人技术高度的标准,所以没有写过框架的人都不能算是大牛了。但是回归生产,我们不一定要会写框架,但是一定要会用框架,本文将介绍如何在我们的网站中配置一个轻量级、性能出色、兼容各种主机环境、没有大规模集成类库、几乎 0 配置、无需学习模板语言、没有严格的编码规则、让你有更多的时间远离电脑做你喜欢做的事情的PHP框架CodeIgniter,俗称PHP CI框架。

关于网站的基本搭建以及配置请看我的上一篇博客 LNMP环境搭建

不多介绍,HERE WE GO

1. 下载框架文件并配置到你的网站根目录

框架官网找自己看上的版本随便下

例如我们下载了一个CodeIgniter-3.1.5.zip的框架包,然后:

unzip CodeIgniter-3.1.5.zip
#解压框架文件
cd CodeIgniter-3.1.5
mv  *  /usr/local/nginx/html/
#将框架文件移动到你的网站根目录下

这时候的目录结构如下:

 [root@rhel6-vm html]# tree -L 2
.
├── 50x.html
├── application
│   ├── cache
│   ├── config
│   ├── controllers
│   ├── core
│   ├── helpers
│   ├── hooks
│   ├── index.html
│   ├── language
│   ├── libraries
│   ├── logs
│   ├── models
│   ├── third_party
│   └── views
├── composer.json
├── contributing.md
├── index.html
├── index.php
├── license.txt
├── readme.rst
├── system
│   ├── core
│   ├── database
│   ├── fonts
│   ├── helpers
│   ├── index.html
│   ├── language
│   └── libraries
└── user_guide├── changelog.html├── contributing├── database├── DCO.html├── documentation├── _downloads├── general├── genindex.html├── helpers├── _images├── index.html├── installation├── libraries├── license.html├── objects.inv├── overview├── search.html├── searchindex.js├── _static└── tutorial

访问测试一下:
这里写图片描述
根据提示我们可知展现的网页是由一下两个文件生成:

application/views/welcome_message.php
application/controllers/Welcome.php

只写过简单网页的同学在这里就要迷糊了,为什么需要两个网页来生成一个页面,那么你需要好好学习一下CI框架的工作机制了(model / control / view)。

默认情况下Nginx是不支持CodeIgniter的,上边的页面也只是一个测试页,如果要写一个真正的应用的话那么我们还有一些事情要做:

1. 修改CodeIgniter配置:

vim /usr/local/nginx/html/application/config/config.php
修改以下两项内容

$config['base_url'] = '/usr/local/nginx/html';
#对于已经上线的网站可以写成域名$config['uri_protocol'] = 'PATH_INFO';
//$config['uri_protocol']       = 'REQUEST_URI';

2. 修改Nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

server {listen       80;server_name  localhost;#access_log  logs/host.access.log  main;location /{root   html;index index.php  index.html index.htm;rewrite ^/$ /index.php last;rewrite ^/(?!index\.php|robots\.txt|images|js|styles)(.*)$ /index.php/$1 last;#重写网页,修改CI中的默认的index.php}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
location /index.php{fastcgi_pass  127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME /usr/loca/nginx/html/index.php;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_split_path_info ^(.+\.php)(.*)$;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;include fastcgi.conf;
}
}

接下来我们就可以按照CI框架的编程习惯来写程序了

1. 写一个自己的controller

按照CI框架的规范,我们在网站跟目录的application/controllers下新建一个controller,需要注意的是controller的文件名称首字母必须是大写,后缀是.php
[root@rhel6-vm controllers]# pwd
/usr/local/nginx/html/application/controllers
[root@rhel6-vm controllers]# cat Halo.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Halo extends CI_Controller {public function index(){echo 'Hello CodeIgniter!';}
}

来我们测试一下:
这里写图片描述

Note: 如果项目的内容比较多,那么我们就需要把控制器进行分类,要怎么做呢,只需要在控制器目录中建立子目录就可以了,如下auth就是子目录,其中包含了一个Login控制器:
这里写图片描述

这样在访问的时候只需要把子目录写在控制器前面就可以了:
这里写图片描述

2. 写一个自己的view

视图就是一般的PHP文件,文件命名和内容格式没有什么要求

[root@rhel6-vm views]# pwd
/usr/local/nginx/html/application/views
[root@rhel6-vm views]# cat login.php

<?php
echo 'It is a view for controller Halo to call!';
?>

写了视图文件要怎么用呢?我们要知道光有视图文件没用的,它必须被controller调用才能生效,接下来我们去修改一下controller:
[root@rhel6-vm controllers]# cat Halo.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Halo extends CI_Controller {public function index(){$this->load->view('login.php');############注意这一行就是对视图的调用,这样我们就完成了视图与控制器的关联。}
}

测试一下结果:
这里写图片描述

Note: 如果项目的内容比较多,那么我们就需要把视图进行分类,要怎么做呢,只需要在视图目录中建立子目录就可以了,如下auth就是子目录,其中包含了一个login.php视图页面:
这里写图片描述
[root@rhel6-vm auth]# pwd
/usr/local/nginx/html/application/views/auth
[root@rhel6-vm auth]# cat login.php

<?php
echo 'This is a sub directory file called by controller';
?>
[root@rhel6-vm auth]# 

这时候要怎么把控制器和视图函数进行绑定呢,很简单,真的很简单,引入文件的时候把子目录加到视图文件之前:
[root@rhel6-vm auth]# cat Login.php
#对应的控制器中内容如下:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');class Login extends CI_Controller {public function index(){$this->load->view('auth/login.php');}
}

[root@rhel6-vm auth]# pwd
/usr/local/nginx/html/application/controllers/auth
[root@rhel6-vm auth]#
这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_855210.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用postman测试需要登陆认证网站的api

postman作为一款web开发中必备的神器&#xff0c;有很多只是需要我们去学习 如果想要使用postman测试需要登陆认证网站的api&#xff0c;只需开启一个按钮&#xff1a; 然后在头部添加cookie以及X-CSRFToken&#xff08;因为项目是django&#xff09;

用户点击与网站目标 - 基于Google Analytics的应用

转载出处: http://webdataanalysis.net/tool-for-web-analytics/click-and-goal/ 用户在网站的行为其实无非就是输入和点击&#xff0c;而点击又是最常见的行为&#xff0c;其实用户行为分析一大部分就是在分析用户各种各样的点击行为。我们可以通过各种途径来监控用户点击行为…

三招教你提升团购网站流量转化率(上)

转载出处: http://hi.baidu.com/%CE%A4%B2%AE%C4%C9%CB%B9/blog/item/21f173c3275b82c7d10060a0.html/cmtid/8501cf90d0feb311d21b70ea 本人负责经营美心计化妆品团购网站&#xff0c;日常推广需要对流量进行分析。而流量分析中的核心是分析流量的价值&#xff0c;流量的价值是…

学习Web 开发技术的16个国外最佳教程网站和博客

转载地址: http://www.w3cfuns.com/article-788-1.html 互联网经过这么多年的发展&#xff0c;已经出现了众多的 Web 开发技术&#xff0c;像 .Net/Java/PHP/Python/Ruby 等等。对于 Web 开发人员来说&#xff0c;不管是初学者还是有一定经验的开发人员都需要时刻学习新的开发…

触摸屏网站开发系列(一)-ios web App应用程序(ios meta)

转载地址: http://www.iptu.net/index.php/archives/2955.iptu 触摸屏网站的开发其实现在来讲比前几年移动端网站开发好多了&#xff0c;触摸屏设备IOS、Android、BBOS6等系统自带浏览器均为WEBKIT核心&#xff0c;这就说明PC上面尚未立行的HTML5 CSS3能够运用在这里&#xff…

css横幅_CSS3:创建网站横幅

css横幅Inspired by Tamsin Baker’s beautiful Photoshop brushes “Urban Scrawl” 1 and 2, I was trying to create some shadowed banners using some CSS3 properties. Visit Tamsin’s site and check out all her inspiring artwork including the free Photoshop brus…

谷歌nexus9刷机_Google Nexus网站菜单

谷歌nexus9刷机View demo 查看演示Download Source 下载源Today I want to show you how to reconstruct the sidebar menu of the Google Nexus 7 page. It slides out with a really nice effect where some subitems get expanded as well. When hovering over a special me…

教你使用“百度统计”黑科技,根据不同维度分析网站的访问质量

废话不多说&#xff0c;先上几张百度统计的分析效果图&#xff1a; 实时访客明细&#xff1a; 今日流量&#xff1a; 跳出率指的是只访问了入口页面&#xff08;例如网站首页&#xff09;就离开的访问量与所产生总访问量的百分比。跳出率计算公式&#xff1a;跳出率访问一个页面…

今天码云(gitee.com)网站打不开,难道被封了?教你正确姿势上码云

今天下午2点50分左右&#xff0c;码云官网&#xff08;gitee.com&#xff09;突然访问不了了&#xff0c;公司代码仓库无法连接使用&#xff0c;不明所以。于是我迅速打开QQ&#xff0c;找到码云官方交流群&#xff0c;发现全国各地已经有很多人在反映这个问题。然后我看到了红…

如何添加百度收录的自动推送代码到帝国CMS网站中

站长近期的收录情况。第一步&#xff1a;获取代码百度资源站点&#xff1a;https://ziyuan.baidu.com 没有站点的要先创建站点。第二步&#xff1a;新增模板变量。变量名随意&#xff0c;我的是&#xff1a;[!--temp.baidu-js-push--]第三步&#xff1a;编辑内容。将第一步里复…

deepin使用Nginx创建站点

配置nginx站点 复制/etc/nginx/conf.d/default.conf 粘贴到当前文件夹&#xff0c;重命名swooletest.conf image.png修改目录和域名 image.png项目根目录创建目录&#xff0c;并且赋予权限 image.png修改/etc/hosts image.png重载nginx sudo nginx -s reloadimage.pngimage.pn…

将线上网站打包成exe可执行文件

1、首先电脑需要有node环境。 去nodejs的官网 https://nodejs.org/en/ 下载&#xff0c;一直下一步就行 检验安装是否成功&#xff0c;cmd命令输入如下命令&#xff0c;出现nodejs的版本号&#xff0c;说明安装成功 npm -v 2、安装nativefier GitHub上开源地址&#xff1a;h…

阿里云账号实名认证、域名实名制与网站备案的区别在哪里

初来乍到的新同学对阿里云账号实名认证、域名实名制与网站备案会比较迷惑&#xff0c;都是实名制又是不同内容。魏艾斯博客会在下面详细解释这三者的不同及如何申请审核。 一、账号实名认证&#xff1a; 根据管局要求&#xff0c;一个阿里云账户只能对应一个主体&#xff0c;为…

阿里云账号实名认证、域名实名制与网站备案的区别是什么

初来乍到的新同学对阿里云账号实名认证、域名实名制与网站备案会比较迷惑&#xff0c;都是实名制又是不同内容。魏艾斯博客会在下面详细解释这三者的不同及如何申请审核。 一、账号实名认证&#xff1a; 根据管局要求&#xff0c;一个阿里云账户只能对应一个主体&#xff0c;为…

阿里云添加网站解析教程

在熟悉了阿里云云解析后&#xff0c;现在我们开始做网站解析&#xff0c;把域名指向服务器IP地址&#xff0c;让网站可访问。说白了是给域名指一条路&#xff0c;到服务器的路。 要想添加域名解析&#xff0c;就要购买域名和服务器。可以都在阿里云上面购买&#xff0c;阿里云是…

阿里云服务器1核1G内存1M带宽可以放几个网站及多少流量 看过来

阿里云服务器1核1G内存1M带宽能放几个网站及多少流量&#xff1f;好多人买了阿里云1核1G内存1M带宽的服务器&#xff0c;却不知道能跑多少流量&#xff0c;也不知道能放几个网站。毕竟都是真金白银买来的&#xff0c;如果在使用期内能够最大限度的利用这个额度&#xff0c;让服…

Window服务器建站图文教程 新手看过来

如果能够有自己的网站&#xff0c;那么该是一件多么荣耀的事情。老魏从20年前就很盼望着能有自己的网站&#xff0c;也曾经在各大网络建立博客。并以能够建立自己的网站为梦想。那时候只知道网站需要服务器和域名&#xff0c;不知道怎么建站&#xff0c;现在陆续操作了下来&…

阿里云轻量应用服务器怎么一键安装ECShop镜像搭建小型电商网站?

阿里云轻量应用服务器能够快捷安装ECShop镜像&#xff0c;搭建小型电商网站。下面来介绍如何使用轻量应用服务器的ECShop镜像搭建一个小型电商网站。 创建服务器 访问轻量应用服务器购买页面&#xff0c;选择ECShop镜像&#xff0c;并选择套餐、购买时长&#xff0c;确认订单支…

阿里云网站ICP备案详细操作步骤教程

依据工信部的要求国内网站必须有备案号才能开通&#xff0c;阿里云网站ICP备案是每个在阿里云搭建网站的用户都要操作的。以下的信息务必真实有效&#xff0c;不能有差错&#xff0c;后面阿里云自查、管局检查出来会给你打回来重新填写&#xff0c;耽误下备案号时间。 如果你使…

网站 https ssl 443 iis 免费证书申请

1.免费ssl证书申请https://letsencrypt.osfipin.com 刚刚注册了一个显示有效期至2020-07-07 07:20:40 2.另外一个。dnspod.cn免费一年ssl证书 3.iis导入证书&#xff1a; https://cloud.tencent.com/document/product/400/35225 进入 “URL 重写” 页面&#xff0c;并单击右…