日期: 2022-09-20 15:51:38 浏览数:3

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
酒泉网站优化【酒泉开通400电话】酒泉网站搭建、酒泉微信公众号推文外包、酒泉开通京东拼多多设计、酒泉淘宝装修

酒泉,古称肃州,是甘肃省辖地级市,甘肃省人民政府批复确定的丝绸之路经济带甘肃段重要节点城市、省域副中心城市。截至2020年11月,辖1个区、2个县级市、4个县,总面积19.2万平方千米,2019年常住人口113.22万,城镇常住人口70.69万,有汉、蒙、哈萨克、回等40多个民族。 [1-3]
酒泉地处中国西北地区、甘肃省西北部、河西走廊西端, 东接张掖市和内蒙古自治区,南接青海省,西接新疆维吾尔自治区,北接蒙古国,自古就是通往新疆和西域的交通要塞,是现代航天的摇篮,新中国石油工业和核工业的发祥地,全国重要的新能源基地。
酒泉为汉代河西四郡之一,丝绸之路的重镇,因“城下有泉”、“其水若酒”而得名。酒泉是敦煌艺术的故乡,创造了辉煌的历史文化。同时,由于大自然的运动和人类的活动,创造了奇异瑰丽的自然美景和雄伟壮丽的人文景观。先后荣获影响世界的中国文化旅游名城、中国最具国际影响力旅游目的地等荣誉称号。酒泉市境内有敦煌莫高窟、安西锁阳城、酒泉公园、敦煌雅丹国家地质公园等旅游景点。
简单来说,以下两种判断,永远都为FALSE。
var_dump(isset(DI()->XXX)); var_dump(!empty(DI()->XXX));
正确判断的写法是:先获取,再判断。例如:
$cache = DI()->cache; var_dump(isset($cache)); var_dump(!empty($cache));
在进行某个资源服务是否存在于DI时,需要注意这一点。
首先,PhalApi的自动加载机制很简单;其次,PhalApi不强制只使用一种加载机制。有些框架,单单在类文件的自动加载这一块就弄得非常复杂,以致开发人员需要在使用这些框架的同时添加一些自己的类文件时,往往困难重重,甚至明明用引入了却又不见生效。 而在PhalApi,我们秉承的原则是:简单、统一、规范。
PEAR包的类文件路径和类名映射非常简单,如下图:

图3-2 来自Autoloading Standard的截图
出于简单性,PhalApi暂时不使用命名空间,所以namespace这一块可省去。可以看出,这里的映射规则是:把类名中的下划线换成目录分割符,并在最后加上“.php”文件后缀,便可得到类对应的文件路径位置。
例如,Api_User、Domain_User、Model_User这三个类,分别对应以下路径的文件。
. |-- Api | `-- User.php |-- Domain | `-- User.php |-- Model | `-- User.php
再举一个稍微复杂的示例,如类Api_Game_User_Equitment对应的文件路径为:./Api/Game/User/Equitment.php。需要注意的是,应该严格区分大小写,因为在Linux、Mac等操作系统,文件路径是区分大小写的。
下面是一些错误的示例。
表3-2 错误的类命名
类名 | 类文件 | 错误原因 |
|---|---|---|
Api_user | ./Api/User.php | 类名user小写,导致无法加载 |
Api_User | ./Api/user.php | 文件名user小写,导致无法加载 |
Api_User | ./Api_User.php | 类文件位置错误,导致无法加载 |
在准备好类和文件后,怎样才能让这些类被框架自动加载呢?这里提供的方式是:挂靠式自动加载。熟悉Linux系统的同学可能很容易明白,还没接触到Linux的同学也是可以很快理解的。这里稍微说明一下。所谓的 挂靠就是将项目内的子目录添加到自动加载器。例如我们在入口文件所看到的,添加商城新项目的项目目录,可以:
DI()->loader->addDirs('Shop');当有多个目录时,可以传递一个目录数组。
DI()->loader->addDirs(array('Demo', 'Shop'));需要注意的是,上面相对路径的都需要放置在应用项目的目录API_ROOT下面,暂时不能添加项目以外的目录。
通过PhalApi_Loader::addDirs($dirs)方式挂靠的路径,都是强制在目录API_ROOT下面。所传递的目录路径都应该是相对路径。在Linux系统上,下面的三种方式是等效的。
// 路径:API_ROOT/DemoDI()->loader->addDirs('Demo');// 路径:API_ROOT/./DemoDI()->loader->addDirs('./Demo');// 路径:API_ROOT/DemoDI()->loader->addDirs('/Demo');如果需要挂靠的目录不在项目目录下,在Linux可以通过软链来解决。
对于单个文件的引入,可以通过PhalApi_Loader::loadFile($filePath)来引入,这里的文件路径可以是相对路径,也可以是绝对路径。注意以下两种写法的区别:
// 路径:API_ROOT/Demo/Tool.phpDI()->loader->loadFile('Demo/Tool.php');// 路径:/path/to/Demo/Tool.phpDI()->loader->loadFile('/path/to/Demo/Tool.php');在添加代码目录后,便可实现该目录下类文件的自动加载。例如通过DI()->loader->addDirs('Shop');添加了Shop项目的源代码目录后,此Shop目录下符合PEAR命名规范的类,都能实现自动加载。
$ tree ./Shop/ ./Shop/ ├── Api │ ├── Default.php │ ├── Goods.php │ └── Welcome.php ├── Common │ ├── Crypt │ │ └── Base64.php │ ├── DB │ │ └── MSServer.php │ ├── Logger │ │ └── DB.php │ ├── Request │ │ └── WeiXinFilter.php │ └── Response │ └── XML.php ├── Domain │ └── Goods.php ├── Model │ └── Goods.php
上面是Shop项目下的部分类文件,当使用类Api_Welcome时,会自动加载./Shop/Api/Welcome.php文件;当使用类Common_Response_XML时,会自动加载./Shop/Common/Response/XML.php文件;当使用类Domain_Goods时,则会自动加载./Shop/Domain/Goods.php文件,以此类推。
对于面向过程中的函数,而非类,则可以使用PhalApi_Loader::loadFile($filePath)来手动引入。
使用一个类,其过程可归结为三个步骤。
1、实现该类
2、自动加载该类
3、在恰当的地方使用该类
当发现找不到某个类时,应该从这三个步骤分别排查原因。如果尚未实现该类,那么肯定是找不到的,这时可以补充实现。如果已经实现该类但还找不到,则应该检查类名或者类文件路径是否遵循PEAR命名规范。
例如,有一行这样的代码,却提示类Domain_Goods不存在。
$domain = new Domain_Goods();
导致这种情况的可能以下这几种。
未使用目录分割符而导致错误的类文件路径,如:
// $ vim ./Shop/Domain_Goods.php<?phpclass Domain_Goods{ }因小写而导致错误的类文件路径,如:
// $ vim ./Shop/Domain/goods.php<?phpclass Domain_Goods{ }拼写不完整而导致错误的类名,如:
// $ vim ./Shop/Domain/Goods.php<?phpclass Goods{ }最后如果类名、类文件这些都正确,但仍然还是提示找不到类时,则应该核对第三步,是否在恰当的地方使用该类?恰当的地方是指在添加代码目录之后的调用位置。即在挂靠代码目录前不能使用此目录下的类,而应在挂靠之后使用。用代码示例来表示,则很好理解。例如:
// 错误:未挂靠Shop目录就使用DI()->response = new Common_Response_XML();
DI()->loader->addDirs('Shop');正确的用法是在挂靠Shop目录后才使用Shop目录里面的类,即:
// 正确:先挂靠Shop目录再使用DI()->loader->addDirs('Shop');
DI()->response = new Common_Response_XML();酒泉网站优化【酒泉开通400电话】酒泉网站搭建、酒泉微信公众号推文外包、酒泉开通京东拼多多设计、酒泉淘宝装修
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)