PHP 自动加载的简单实现(推荐)
基于psr的规范,使用命名空间和spl_autoload_register()来实现自动加载
文件结构:
|--Api
|--Account.php
|--User.php
|--Service
|--Login.php
|--User.php
|--Application.php
Application.php
<?php
use Api\User;
use Service\User as User2;
class Application{
public static function main(){
self::registe();
new User();
new User2();
}
public static function registe(){
spl_autoload_register("Application::loadClass");
}
public static function loadClass($class){
$class=str_replace('\\', '/', $class);
$class="./".$class.".php";
require_once $class;
}
}
Application::main();
Api\User.php
<?php
namespace Api;
use Service\Login;
class User{
public function __construct(){
echo "User类<br/>";
new Login();
new Account();
}
}
Api\Account.php
<?php
namespace Api;
class Account{
public function __construct(){
echo "Account类<br/>";
}
}
Service\Login.php
<?php
namespace Service;
class Login{
public function __construct(){
echo "Login类<br/>";
}
}
Service\User.php
<?php
namespace Service;
class User{
public function __construct(){
echo "Service下的User类<br/>";
}
}
结果:

PHP 自动加载的简单实现(推荐)的更多相关文章
- PHP 命名空间与自动加载机制
include 和 require 是PHP中引入文件的两个基本方法.在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 requ ...
- PHP 命名空间与自动加载机制介绍
include 和 require 是PHP中引入文件的两个基本方法.在小规模开发中直接使用 include 和 require 没哟什么不妥,但在大型项目中会造成大量的 include 和 requ ...
- 【PHP系列】PHP推荐标准之PSR-4,自动加载器策略
接上回的继续说,上回说到PSR-3日志记录器接口,这回我们来说说PSR的最后一个标准,PSR-4,自动加载器策略. 缘由 自动加载器策略是指,在运行时按需查找PHP类.接口或性状,并将其载入PHP解释 ...
- 简单实现JDBC自动加载驱动,简化数据连接和关闭数据库连接
package util; import java.io.File;import java.io.FileInputStream;import java.io.IOException;import j ...
- php克隆 自动加载
PHP加载 include() 函数 include() 函数可获得指定文件中的所有文本,并把文本拷贝到使用 include 函数的文件中. 例子 1 假设您拥有一个标准的页眉文件,名为 " ...
- Phalcon自动加载(PHP自动加载)
自动加载(phalcon\Loader) 转载请注明来源 一.php文件引入 通过 include() 或 require() 函数,可以在PHP程序执行之前在该文件中插入一个文件的内容. 区别:处理 ...
- (转)ALSA配置文件(alsa.conf, asoundrc, asound.conf)及其自动加载 And HDMI Adiuo
原文出处:http://blog.sina.com.cn/s/blog_a04184c101010kry.html 警告:错误的EDID会造成HDMI发声异常 #title:box:HDMI Audi ...
- php composer 实现类的自动加载
我们在开发项目中会经常用到第三方的类库插件,但是如果每次需要使用的时候都会在代码的某一处去引入,然后在实例化,这样做感觉很不方便,那么怎么实现自动加载呢,下面简单介绍使用composer实现自动加载: ...
- Laravel 学习笔记之 Composer 自动加载
说明:本文主要以Laravel的容器类Container为例做简单说明Composer的自动加载机制. Composer的自动加载机制 1.初始化一个composer项目 在一个空目录下compose ...
随机推荐
- [入门阅读]怎样在android中解析JSON
JSON入门介绍:http://kirin.javaeye.com/blog/616226 也参考了此篇:http://blog.163.com/fushaolin@126/blog/static/1 ...
- 怎么用MathType编辑带圈字母
在用word公式编辑器MathType编辑公式时,里面涉及到很多的数学物理符号等等,这些符号或者是公式其实都可以利用MathType中的模板进行组合.在这些数学公式中,有时会有一些比较特殊的符号,它们 ...
- 教您如何在Word的mathtype加载项中修改章节号
在MathType数学公式编辑器中,公式编号共有五部分内容:分别是章编号(Chapter Number).节编号(Section Number).公式编号(Equation Number).括号(En ...
- Java中的各种加密算法
Java中为我们提供了丰富的加密技术,可以基本的分为单向加密和非对称加密 1.单向加密算法 单向加密算法主要用来验证数据传输的过程中,是否被篡改过. BASE64 严格地说,属于编码格式,而非加密算法 ...
- [转]ASP.NET MVC 5 - 给电影表和模型添加新字段
在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...
- JQuery------帮助文档
转载: http://www.css88.com/jqapi-1.9/jQuery.parseHTML/
- Linux mii-tool 命令
mii-tool 用来查看或设置网卡的相关参数,该命令已经过时了,推荐使用 ethtool 命令 [root@localhost ~]$ mii-tool -v eth1 # 查看网卡的相关信息,包括 ...
- Centos安装Memcache
Memcache概述 官方 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据.简单的说就是将数据调用到内存中,然后从内存 ...
- 【go】go语言socket通信样例
server.go package main import ( "net" "fmt" "io" ) func main() { liste ...
- LeetCode——Generate Parentheses
Description: Given n pairs of parentheses, write a function to generate all combinations of well-for ...