命名空间
---
`PHPSmarty`采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和`Composer`类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制。
>如果不清楚命名空间的基本概念,可以参考PHP手册:[PHP命名空间](http://www.php.net/manual/zh/language.namespaces.php "PHP命名空间")
在`PHPSmarty`中,只需要给类库正确定义所在的命名空间,并且命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载,从而实现真正的惰性加载。
例如,`\www.abc.com\plugins\Ipaddr.php`类的定义为:
```php
namespace MAIJI;
class IpAddr
{
}
```
如果我们实例化该类的话,应该是:
在顶部载入
然后在方法内实例化该类
```php
namespace MAIJI;
use maiji\IpAddr;
class IpAddr
{
public function testa()
{
$ip = new IpAddr;
$addr = $ip->ip('8.8.8.8');
dump($addr);
}
}
```
系统会自动加载该类对应路径的类文件,其所在的路径是
`\www.abc.com\plugins\Ipaddr.php`
或者使用
```php
namespace MAIJI;
class IpAddr
{
public function testb()
{
$ip = new \maiji\IpAddr();
$addr = $ip->ip('8.8.8.8');
dump($addr);
}
}
```
- 基础
- 安装PhpSmarty
- 开发规范
- 目录结构
- 架构总览
- URL访问
- 隐藏入口文件
- 命名空间
- 配置目录
- 配置读取
- 控制器
- 控制器定义
- 渲染输出
- 控制器初始化
- 页面跳转
- 重定向
- 调用控制器方法
- 请求
- 变量获取
- 数据库
- 连接数据库
- 查询构造器
- 助手函数
- 模型
- 模型定义
- 模型调用
- 模型初始化
- 模型新增
- 模型更新
- 模型删除
- 模型查询
- 模型分层
- JSON序列化
- 模板
- 模板定位
- 静态文件
- 三元运算
- 模板继承
- 包含文件
- 内置标签
- FOREACH标签
- FOR标签
- 比较标签
- 条件判断
- 标签嵌套
- 错误和调试
- 调试模式
- SQL调试
- 杂项
- Session
- Cookie
- Cache
- 搭建部署
- 虚拟主机环境
- Linux主机环境
- URL重写
- 更新日志