当前位置: 首页 > news >正文

南京建设交易中心网站本地专业app开发公司

南京建设交易中心网站,本地专业app开发公司,苏州 建设中心网站,wordpress电台插件1、自定义类与非类的自动加载与测试 # composer php 包管理工具 #xff0c;类似npm1.自己写的类#xff0c;函数#xff0c;接口#xff0c;常量等全局成员#xff0c;通过自动加载来实现按需加载 2.自己写的代码#xff0c;有哪些依赖#xff0c;用到了哪些外部成…1、自定义类与非类的自动加载与测试 # composer php 包管理工具 类似npm1.自己写的类函数接口常量等全局成员通过自动加载来实现按需加载 2.自己写的代码有哪些依赖用到了哪些外部成员我自己知道可以自己管理 3.如果第三方(别人写的),由包管理工具实现自动加载以及包之间的依赖的处理 4.php中用的是composer来实现这个功能类似于Apple Store手机应用的商店## 1.自动加载器1. composer init:交互式创建配置文件 composer,json 2. 创建成功后可以在vendor/下面有一个autoload.php的自动加载器## 2.自动加载我自己写的类我自己写的类,依赖关系我自己处理,能不能加载?可以,就用composer就可以 这个类文件叫composer.json json { : {classmap:[inc/,MyClass.php]} } 每一步写完要执行composer dumpautoload使之注册并生效 ## 3.自动加载我自己写的其它文件注意:文件中的成员必须是全局的才可以自动加载和使用哪些是全局代码(要用空间访问的):类,接口,trait,函数,常量(变量不是,变量有作用域的)配置文件(例如连接数据库的文件):config/connect.php公共函数库:lib/helper.php## 4.PSR-4 自动加载功能### psr(php推荐标准)-41.专用于**类**的自动加载 2.类空间与类路径存在映射关系 3.类名与类文件同名 4.支持空间分级(顶层空间/子空间/自动查询)管理 命名空间与类路径名称不一定相同类泛指类:class/interface/trait注意:对象的模板是类,类的模板是接口## 5.加载第三方的包(只有这个是必须用composer)第三方包(也属于全局成员)的依赖关系,由 composer 进行处理1.composer.json:require:{...},composer install 2.新建终端输入composer require 包名,会自动更新 composer.json 3.都会自动创建composer.lock锁定当前版本 4.composer create-project topthink/think blog:通过包来创建完整项目## 6.总结1.自动加载 2.依赖管理 2、composer的使用 2-1 首先进入当前命名空间然后使用composer指令 如此可证明composer安装成功 2-2 使用 composer selfupdate可以对composer版本进行升级  2-3 升级后通过 composer -v  查看composer版本 2-4 对于composer来说,有个非常重要的文件,就是它的配置文件 (composer.json) 该文件包含了项目的依赖和其它的一些元数据 3、composer.json  如果手动创建了composer.json文件则使用composer install代表安装在composer.json中声明的第三方类库且手动创建的composer.json必须包含有效的json格式{} 或者直接使用命令composer init初始化一个配置文件。  我自己写的类或其它文件autoload:{         classmap[]         files:[]         psr-4:{} }  第三方的类require:{} classmap: 把类的映射关系声明到classmap中当我加载或调用一个我当前还没有加载的类的时候我用classmap告诉项目从哪里找这个类。写完以后还需使用指令composer dumpautoload 使对应的autoload_classmap.php完成注册(在array里)  classmap:[inc/,MyClass.php ], 在class可以直接引用文件名这样相当于文件名下的所有类都被加载进来。 也可以只引用某个文件。  files 把非类文件的映射关系声明到files中当我加载或调用一个我当前还没有加载的非类文件的时候我用files告诉项目从哪里找这个文件。写完以后还需使用指令composer dumpautoload 使对应的autoload_files.php完成注册(在array里)  files:[config/connect.php,lib/helper.php ], 4、autoload.php  系统自动给我们写好的配置文件(相当于自己写的自动加载器) 5、 database.php 连接数据库的参数配置 ?php//数据库连接参数 return [dsnmysql:dbnamephpedu,usernameroot,passwordroot ]; 6、connect.php 连接文件用于实现数据库的连接  ?phpnamespace _0823;use PDO;//连接数据库class Db{private $db null;public function __construct($dsn,$username,$password){$this-db new PDO($dsn,$username,$password);}//测试方法public function select($sql){return $this-db-query($sql)-fetchAll(PDO::FETCH_ASSOC);} } 7、 使用Db类 ?phpnamespace _0823;//验证自己写的函数或其它文件//加载composer的自动加载器 require vendor/autoload.php;//$dsn,$username,$password声明在database.php文件 //可以用extract这样写,但是没必要 // extract([ // dsn mysql:dbnamephpedu, // username root, // password root // ]); extract(require config/database.php); $db new Db($dsn, $username, $password);$users $db-select(select * from user); foreach($users as $user){printf(pre%s/pre,print_r($user,true)); }var_dump($db);echo sum(3,4,5,6);8、任意数量数据求和 ?phpfunction sum(...$items){//也可以用 array_reduce()return array_sum($items); } 9、psr-4 php推荐标准只能用于类的自动加载并且要求类空间与类路径存在映射关系 这一点和手写的自动加载器很像(如果一个类它的命名空间和路径存在映射关系就可以写一个自动加载器我们只需要解析一下类的命名空间解析出来里面的内容作为路径这样就可以把这个类给加载过来了)。 并且类名一定要和类文件名相同。 ?php//空间名与路径名可以不同,只要正确的映射就可以 namespace phpcn; //类名与类文件名要一致 class Index {public static function show(){//魔术常量__METHOD__返回一下当前方法名return 方法名: . __METHOD__;} } 因为反斜线是转义符所以必须敲两次  psr-4: {phpcn\\:admin/ } 在命令行使用composer dumpautoload完成对psr4的注册 10、psr-4的(命名)空间分级管理 在admin文件夹下新建一个文件夹controller在controller下再新建文件login.php ?php//空间名与路径名可以不同,只要正确的映射就可以 namespace phpcn\controller; //类名与类文件名要一致 class Login {public static function show(){//魔术常量__METHOD__返回一下当前方法名return 方法名: . __METHOD__;} } 然后需要在配置文件中对phpcn\controller空间和Login类的映射进行注册但是由于之前我们已经把phpcn作为一个顶层的命名空间路径给注册到admin下面了那么在admin文件夹下面所有的类文件以及 10、 第三方包与依赖管理 自己写的类或者其它文件可以自己写一个自动加载器而不一定非要用到composer但是由于第三方包都会遵循composer标准所以必须要用composer自动加载器而且很容易进行一些依赖管理。 第一种方法是在composer.json里面的require对象里写入我们要引入的第三方包。 require: {gregwar/captcha:1.1.*,} *代表最新版本  最后在终端使用命令composer install把这个包安装到当前项目 第二种方法是直接在命令终端输入指令直接安装。 这两种方法都会自动创建composer.lock锁定当前版本  11、验证并使用第三方包 inline指在页面中怎么用只需要实例化该类然后在需要的位置引用就行了 ?php require_once vendor/autoload.php;use Gregwar\Captcha\CaptchaBuilder;$captcha new CaptchaBuilder(); $captcha-build();? !DOCTYPE html bodyhtmlmeta charsetutf-8 //htmlbodyh1Inline Captcha/h1img src?php echo $captcha-inline(); ?/br/Phrase: ?php echo $captcha-getPhrase(); ?/body /body遇到了一个bug从 float  到 int 的隐式转换会丢失精度 需将$x和$y强制转成int型即可  12、使用composer基于包创建一个项目 在终端使用命令composer create-project topthink/think blog创建项目最后的blog是给这个项目文件夹的命名如果没有blog这个参数那么这个文件名则为think(即包名)。注意这里用的不是require指令而是create-project指令 打开这个项目blog可以发现当前这个项目是一个完整的框架项目这里面它有自己的composer.json(配置器)有自己的一个包目录(vendor)框架的源码在vender里面有一个topthink 13、medoo(加速开发的轻量级PHP数据库框架) 在终端使用composer require catfan/medoo指令进行安装 ?phpnamespace _0823;use Medoo\Medoo; use PDO;require vendor/autoload.php;$opt [type mysql,host localhost,database phpedu,username root,password root, ];$db new Medoo($opt); //查询 // $staffs $db-select(staff,*); // print_r($staffs);//查询(原生PDO操作) // ?处不能直接传3因为会当字符串处理需要做一个绑定 $stmt $db-pdo-prepare(select * from staff limit ?); $stmt-bindValue(1,3,PDO::PARAM_INT); $stmt-execute(); printf(pre%s/pre,print_r($stmt-fetchAll(PDO::FETCH_ASSOC),true));上述运行结果  Array ([0] Array([id] 1[name] admin[sex] 1[email] adminphp.cn)[1] Array([id] 2[name] 杨过[sex] 1[email] yangguoqq.com)[2] Array([id] 3[name] 小龙女[sex] 0[email] xiaolongnvqq.com))
http://www.dnsts.com.cn/news/192448.html

相关文章:

  • 做二手货的网站商城类型的网站怎么做
  • 深圳做模板网站的公司黄埔做网站的公司
  • 天津企业模板建站哪个好在小说网站做责编
  • 手工艺品出口网站建设策划书网站咋做
  • 深圳网站建设 设计卓越模板下载网站
  • 东莞seo建站怎么投放软件培训学校
  • 电商网站h5模板下载网站是否降权查询
  • 网站关键词优化应该怎么做网站产品的详情页怎么做
  • 东莞网站建设需要多少钱工商注册法人查询
  • 优秀网站设计欣赏做书网站 时光
  • 做期货应该看的网站网站怎么更改后台登陆密码
  • 直播网站是怎么做的天津建设工程信息网招投标正规吗
  • 如何只做网站昆山设计公司
  • 网站建设在哪里做比较好申请带域名的免费空间
  • 网站信息备案查询系统joomla做类似赶集网的网站
  • wordpress精美网站做网站什么字体
  • 做图标的网站做网站前端工资
  • 厦门市建设局网站住房保障wordpress页面文字首行缩进
  • 阿里网站备案寄材料廉价网站建设
  • 招生就业网站开发详情失信被执行人查询系统
  • 网站怎么做cp备案号网站开发怎样实现上传视频
  • 百度网站录入租一个服务器要多少钱
  • 求购做网站网站建设 cn
  • 免费的企业网站模板营销推广的目标通常是什么
  • 出口外贸网站邯郸网站设计培训机构
  • 建设外贸网站案例网络图怎么绘制
  • 网站开发成本预算价目表东莞网站建设功能
  • 狼雨seo网站排名查询专业服务网站开发
  • 网站建设(信科网络)重庆社区官网
  • 网站开发要注意哪些细节微网站开发教材