用go重写php网站,php如何使用自动加载(重写url形成单一入口)-Go语言中文社区

news/2024/5/9 16:40:46/文章来源:https://blog.csdn.net/weixin_39900180/article/details/116029189

事情是这样的,昨天我面了个试,发现自己对自动加载了解的很片面,于是我就去看自动加载的机制,而网上的例子讲的都是方法含义,于是我自己写了个简单的例子。

什么是自动加载了?在php5之前是没有自动加载的,所以文件之间的引入单纯靠的是 大量的require/include,但是如果一个文件存在很多require那事情就大了,于是这时候引入了自动加载机制。

自动加载机制一开始是只有一个__autoload($class_name) {}  函数的,就是如果我们实例化类找不到该类就去调用这个函数了,但是后来发现不同的包的映射方式都是不一样的,

但悲催的是自动加载往往就是看类名与磁盘映射规则,所以这时候引入spl_autoload_register(),这个会用spl的__autoload替换掉原来的__autoload,并且可以自定义方法名如下:

function autoload($class_name) { //假如我是自己命名的方法

# 执行你的加载操作

}于是我们逐渐改用他,接下来我就会用spl的自动加载写一个demo,比如访问 http://www.autoload.com/admin/goods/index 时会加载到 文件 ./admin/goods/index.class.php,步骤如下:

①首先是配置一个虚拟主机,废话不多说教程百度有:https://jingyan.baidu.com/article/49ad8bce7661355834d8fad6.html

②然后在所配置的虚拟主机的根目录下 添加 .htaccess 内容如下:

RewriteEngine On

RewriteRule ^ index.php [L]

注:该作用是 将访问该主机的请求全部指向index.php文件进行处理。

③修改index.php文件,对其自动加载方法进行改写对应的映射规则如下:

global $paths;

//自动加载函数~用于加载类方法进来

function autoload($class_name) {

global $paths;

if(file_exists($paths['0'].'/'.$paths['1'].'.class.php')) {

require($paths['0'].'/'.$paths['1'].'.class.php');

}else {

die('404');

}

}

// 确保spl 自动加载栈已被初始化

if(false === spl_autoload_functions()){

if(function_exists('autoload')){

spl_autoload_register('autoload');

}

}

//这里先获取请求url,然后实例化一个类,此时会通过自动加载将类方法加载进来

$base_path = ltrim($_SERVER['REQUEST_URI'], '/');

$paths = explode('/', $base_path);

//实例化类,并调用对应的方法

$obj = new $paths['1']();

if(method_exists($obj, $paths['2'])) {

$obj->$paths[2]();

}else {

die('404');

}

④在当前根目录创建对应的文件 admin/goods.class.php 并代码如下:

class goods {

public function index() {

echo '这里是admin/goods.class.php下的index方法';

}

}

⑤此时重启下apache服务器可看见效果如下:

e812f7f73f11a51beb510a33d57662b1.png

若使用错误不存在路径的会报错如下:

e79503541fc4dabb076448ee7d7eeb30.png

最后测试的项目结构如下:

cf945aa622b46a252dd9ace22087f976.png

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

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

相关文章

网络不稳定是什么原因_关键词排名波动原因,如何解决网站排名不稳定!

理论上讲,关键词的排名决定了网站的流量,定期审查关键词的排名是每个SEO人员的工作,在以往的工作我们可能会遇到这样一种情况:关键词排名频繁波动,很不稳定。 它往往搞的SEOer一头雾水,明明没有过度优化&am…

少儿编程的关联网站

​少儿编程教育的目的是学习某编程语言,掌握多少编程知识和技能,而是通过编程的学习提升数字素养,培养信息意识,形成学科融合的能力。格物斯坦认为:编程化计算思维的建立,为解决实际问题提供更富有逻辑化的…

学习人工智能网站

​在谈论人工智能教育之前,让我们简单地理解两个概念,一个是大数据,另一个是人工智能。对大数据概念的简单理解是数据价值的过程。格物斯坦表示:目前大数据正在从概念向行业转变。目前,大数据行业已初步形成了基于数据…

url获取网站信息不包含网页源文件内的标签_企业掌握这四点优化方法,轻松获取免费流量...

对于企业来说,在互联网中获取流量时,需要进行非常精细的测算,其中转化率则是计算的重点。企业对引流的渴求度高,在平台虽有公共流量,但是转化率低。想额外达到获客的成果又需要支付相应的费用,这就造成“流…

maya刷权重时有个叉_如何快速提升网站权重?7年SEO从业经验给你谈快速上权重方法...

今天在SEO圈子里面看到很多SEO新手入坑玩家,在群里交流网站权重上升太慢做几个月都没有一点权重和流量。那么今天王听风老师来给大家说一下网站权重快速提升的方法。网站权重我总结的几个经验:一,发文章做词库发文章必须带词库关键词&#xf…

seo自动发外链_seo如何做外链(做seo外链建设有哪些原则)

人人做seo都需要发外链,同样的工作最终的结果却是千差万别,有些人发的外链让网站优化的结果更好,有些人发外链带给网站的优化结果是无效甚至于是反作用的。我们seo如何做外链呢?做外链建设有哪些原则?一、发布一些高质…

python搭建网盘网站_搭建nextcloud私有云存储网盘

简介:搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典。而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储.真正试用过后就由衷地赞同这个Nextcloud:它是个人云存储服务的绝佳选择。一开始以为Nextcloud只是一个网盘…

一个同时在线人数为500人的电商网站,TOMCAT设置并发数以及mysql数据库连接数

请问各位一下,如果现在有一个每天同时在线人数为500人的电商网站,使用阿里云服务器的配置如图 ,用的是strutshibernatespring开发,使用tomcat,如果该网站上线了,那我该如何设置tomcat的连接数,…

承受每天百万级访问量的网站需要多少台服务器?

说一下我的网站吧,是一个漫画网站,全站动态伪静态,目前建站一年,是一个漫画为主的网站。 帖服务器配置截图 以及高峰期的CPU内存占用情况 因为是漫画网站全是图片,所以配了2个8T SAS硬盘做rid,保持服务器稳…

Nginx--大型网站高并发处理

文章目录 **Nginx**-->**大型网站高并发处理** 一,产生背景 二,负载均衡(Load Balance) 2.1 高并发 2.2 负载均衡 2.3 tomcat并发图 三,Nginx简介 3.1 什么是 Nginx? 3.2 哪些地方使用了Nginx? 四&…

我记录网站综合系统 -- 技术原理解析[7:CSS类]

CSS是前台工程师的必修课&#xff0c;一般我们使用CSS只是统一写在.css里面。不过&#xff0c;wojilu提供了一些操作CSS的类&#xff0c;你可以将CSS当作一个个类来操作。 源代码位置&#xff1a;\wojilu\Web\UI 我们可以将一个CSS看作一个字典 Dictionary<String, Dictiona…

IIS网站服务器性能优化指南

Windows Server自带的互联网信息服务器&#xff08;Internet Information Server&#xff0c;IIS&#xff09;是架设网站服务器的常用工具&#xff0c;它是一个既简单而又麻烦的东西&#xff0c;新手都可以使用IIS架设一个像模像样的Web站点来&#xff0c;但配置、优化IIS的性能…

网页制作技术革新:《HTML5 网站大观》系列文章导航

《HTML5 网站大观》系列文章自去年7月至今已总共发布了12篇&#xff0c;向大家分享了基于 HTML5 制作的企业网站、个人网站、博客网站、单页网站、作品集网站等等各种类型的优秀 HTML5 网站设计作品&#xff0c;现收集于此&#xff0c;供大家查阅。 作为下一代网页语言&#xf…

简单介绍相册网站的架构

我们团队正在开发一个相册类产品&#xff0c;希望打造一个基于存储为中心的相册服务。 产品的基本架构如下&#xff1a; 1. 负载均衡 LVS Keepalived ● 抗负载能力强(performance) LVS工作方式的逻辑是非常之简单&#xff0c;而且工作在网络4层仅做请求分发之用&#xff0c;没…

钓鱼网站域名调查:非洲马里顶级域名.ML居首

非洲马里宣布顶级域名.ML从7月开始免费提供&#xff0c;其目的是要把域名回收。现在看来它们已经成功了&#xff0c;尽管这并不是它们所想象中的那样。根据Netcraft的最新调查&#xff0c;由于域名.ML的免费提供&#xff0c;马里已成为拥有全球最多钓鱼网站的国家。Netcraft根据…

记录asp.net网站停止运行原因的代码

记录网站是什么原因导致停止运行还是有必要的&#xff0c;下面是具体的实现方式。 protected void Application_End(object sender, EventArgs e){RecordEndReason();}/// <summary>/// 记录网站停止运行原因/// </summary>protected void RecordEndReason(){HttpR…

IE无法打开internet网站已终止操作的解决的方法

用IE内核浏览器的朋友&#xff0c;或许不经意间会碰到这样滴问题&#xff1a;打开某个网页时&#xff0c;浏览器“嘣”跳出一个提示框“Internet Explorer无法打开Internet 站点...已终止操作”。而大多数情况下该页面甚至非常可能看起来已经载入完成&#xff0c;内容能够全然显…

你的站为什么百度无动于衷——10年老站长的SEO肺腑之言 .

时光荏苒&#xff0c;转眼间2015年已过去一半&#xff0c;时过境迁&#xff0c;一切都变了模样&#xff0c;SEO也似乎变得让人琢磨不定。回想起10多年前&#xff0c;站长们都疯狂做站的时代&#xff0c;仍令人激动&#xff0c;但那份激情貌似一江春水永不复返&#xff0c;如今再…

7月国内网站流量统计TOP5:百度腾讯涨幅明显

IDC评述网&#xff08;idcps.com&#xff09;08月03日报道&#xff1a;根据中国互联网协会-中国网站排名公布的最新数据显示&#xff0c;截至2015年07月30日&#xff0c;国内网站独立访问量五强比拼中&#xff0c;百度连续夺冠&#xff0c;地位稳定。接下来依次是腾讯网、淘宝网…

技术网站 --ITeye Java

2019独角兽企业重金招聘Python工程师标准>>> 一个不错的java编程网站&#xff0c;贴出来供大家分享 http://www.iteye.com/ 转载于:https://my.oschina.net/u/2312022/blog/524767