命名空间自动加载进阶与mysql初体验
类是php四大全局成员(常量函数类接口)中的一员,全局成员有着不受作用域限制的优势,同时也存在名称唯一的限制。
命名空间的出现就能很好的去解决这个唯一命名的问题。
命名空间可以起到一个命名化块的作用,命名空间的命名可以随意起,但是一般建议跟目录一致,命名空间的命名规则参考变量的命名规则,不能是数字开头,不能是内部函数,且需要写在除declare指令外的第一行(注释不算在内)。
命名空间的两种写法:
namespacens1;
namespacens1{}
其中全局空间写做:
namespace{}
但是这里需要注意,如果用namespacens1;的形式就必须所有命名空间都用namespacens1;的形式,如果用namespacens1{}的形式就必须所有命名空间都用namespacens1{}的形式。
下面将autoload.php自动加载做一个命名空间版本的升级:
实例
<?php//类的自动加载spl_autoload_register(function($className){//echo$className;//可以先echo一下检查下要加载的类//echo'<hr>';//将类的命名空间与类文件所在的路径保持一一映射$file=__DIR__.str_replace('\\',DIRECTORY_SEPARATOR,('\..\..\\'.$className)).'.php';//绝对路径方式获取$file地址//$file=str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';//相对路径方式获取$file地址//echo$file;//地址错误的情况下,可以检查下地址的内容//判断$file是否是已存在的文件夹if(!is_file($file)&&file_exists($file)){//如果不是则抛出错误thrownew\Exception('文件名不合法或不存在');}//没问题则引入$file的地址require$file;});
运行实例 »
点击 "运行实例" 按钮查看在线实例
以下面的文件做为测试:
Demo(文件夹)
app(文件夹)
admin(文件夹)
controller(文件夹)
Login.php(php文件)代码:
<?phpnamespaceapp\admin\controller;classLogin{}
User.php(php文件)
<?phpnamespaceapp\admin\controller;//控制器在User控制器文件中使用User模型文件useapp\admin\model\UserasUserModel;classUser{publicfunctionindex(){returnUserModel::getInfo();}}
model(文件夹)
Login.php(php文件)
<?phpnamespaceapp\admin\model;classLogin{}
User.php(php文件)
<?phpnamespaceapp\admin\model;classUser{staticfunctiongetInfo(){return'获取到用户信息';}}
autoload.php(php文件,代码参考上文)
demo.php(php文件)
<?php//引入类的自动加载器require'app/admin/autoload.php';//通过命名空间引入各个类文件,其中遇到重名的需要用as进行重命名的处理操作useapp\admin\controller\Login;useapp\admin\controller\User;useapp\admin\model\LoginasLoginModel;useapp\admin\model\UserasUserModel;//将所有引入的类进行实例化$loginController=newLogin;$UserController=newUser;$loginModel=newLoginModel;$UserModel=newUserModel;//调用User类中的index()echo$UserController->index();
正常输出:获取到用户信息。
msql初体验
sql语句四种分类:
数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL
DQL:基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>,即增删改查中的查。
DML:用来对数据库进行操作,常用的如:插入:INSERT,更新:UPDATE,删除:DELETE,即增删改查中的增删改。
DDL:主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,一般主要在建立表时使用。
DCL:数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL。
更多相关文章
- 命名空间的相关知识
- PHP-02外部文件引入require与数组遍历
- mysql语句、类的自动加载与引用
- oracle数据库无法打开修复过程
- php 命名空间的使用
- 命名空间与mysql入门
- 关于PHP递归函数以及处理多维数组和目录文件实例
- 总结mysql 常用DDL, DML语言并实操与use在命名空间中的作用及实
- 完成一个用户注册页面, 用xmind文件中总结的字符串函数库,对表单