php创建一个接口,[1.2]-创建一个自己的项目 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...

本文详细介绍了PhalApi框架的三种安装方式:可视化安装、手动创建和自动生成,并提供了每一步的具体操作步骤。此外,还提到了一些使用技巧,包括日志目录权限、脚本执行权限设置和解决找不到文件的问题。最后,介绍了四个脚本命令的用途,帮助开发者快速生成项目、单元测试、数据库建表SQL和接口代码。
摘要由CSDN通过智能技术生成

有梦想的人学习能力特别强,而且不拒绝任何新东西。 -- 《理想丰满》

1.2.1 可视化安装

将代码上传到服务器并解压后,访问: ./Public/install/ 下的安装向导,如在浏览器打开:

http://dev.phalapi.com/install/

然后按照提示,一步步操作即可:

(0)第零步:同意安装

829c083db7a5bd7ad2c32bf8b86a848b.png

(1)第一步:环境检查

35fa05e81a6ef8743222213b59e7a2cd.png

(2)第二步:系统配置

8f094a842a569458e20e69672a4fb55f.png

(3)第三步:接口请求

bb0718a38f73da75e7273f2ce90a0238.png

(4)运行效果

a17a837e0f5080f546c44cfcfdb4f68b.png

1.2.2 手动创建

在Windows系统下,可以手动创建一个新的项目。

假设目录为: F:\xampp\htdocs\PhalApi

以下是简单的创建操作:

(1)新建项目目录

在./PhalApi目录下新建一个自己的项目目录,通常以项目名称命名,如项目MyApp对应:

20150411005257_929b7fdc7e966f54608b25c2e17def29

然后,再分别在里面添加接口目录Api、领域目录Domain、数据源目录Model和通用目录Common,即:

20150411005257_9008ecb3491a703442f3522a86ffd624

(2)准备一个接口

全部的接口类文件需要放置到./Api 目录下,你可以尝试编写一个简单的Default.Index接口,也可以直接将./Demo/Api/Default.php文件复制过来。

(3)创建访问入口

将./Public/demo目录复制一份为对应项目名称小写的目录,如这里的myapp:

20150411005257_e78908f60d6b34c7f932ba15eff1c1a2

注意!这里需要修改./Public/myapp/index.php和./Public/myapp/checkApiParams.php中的目录:

20150411005257_92bff2ed15c72380c54dff46ed800544

(4)浏览器访问

在浏览器输入以下链接:

http://localhost/phalapi/Public/myapp/

应该可以看到:

20150411005257_33f51b3efcd0938bb7fc36bb813f4808

1.2.3 自动生成

在Linux系统下,我们可以使用脚本快速生成一个项目结构,此过程只需要1分钟左右。

简明操作如下:

(1)使用phalapi-buildapp脚本

phalapi-buildapp脚本用于创建项目,进入 ./PhalApi/PhalApi/ 后,可以看到这个脚本。

不过,首先,需要为这个脚本添加执行权限:

$ chmod +x ./phalapi-buildapp

然后,调用脚本创建一个MyApp的项目:

$ ./phalapi-buildapp MyApp

OK!

(2)查看生成的项目及访问

回到 /path/to/PhalApi 目录,你会发现生成了一个MyApp目录,并且里面的文件如下:

$ cd MyApp/

$ tree

.

├── Api

│   └── Default.php

├── Common

├── Domain

├── Model

└── Tests

├── Api

│   └── Api_Default_Test.php

├── Common

├── Domain

├── Model

├── phpunit.xml

└── test_env.php

9 directories, 4 files

在Public目录下,则会有myapp的访问入口:

└── myapp

├── checkApiParams.php

└── index.php

在浏览器访问:

#根目录设置为./Public

http://dev.phalapi.com/myapp/

#或没设置根目录为./Public时访问

http://dev.phalapi.com/Public/myapp/

可以看到接口结果输出。

(3)执行单元测试

如果安装了PHPUnit,执行一下单元测试,也是通过的!

$ phpunit ./Tests/

PHPUnit 4.3.4 by Sebastian Bergmann.

...

Time: 7 ms, Memory: 5.75Mb

OK (3 tests, 13 assertions)

1.2.4 更多技巧

(1)日记目录需要0777权限

请确保日记目录Runtime拥有写入的权限,可以给0777 。

(2)脚本加执行权限和软链

对于脚本命令,需要添加执行权限和软链,便于日后使用:

$ cd /pah/to/PhalApi/PhalApi

$ chmod +x ./phalapi-buildapp

$ sudo ln -s /path/to/phalapi-buildapp /usr/bin/phalapi-buildapp

$ chmod +x ./phalapi-buildsqls

$ sudo ln -s /path/to/phalapi-buildsqls /usr/bin/phalapi-buildsqls

$ chmod +x ./phalapi-buildtest

$ sudo ln -s /path/to/phalapi-buildtest /usr/bin/phalapi-buildtest

(3)No such file or directory的解决方案

解决方案一:增加 /usr/bin/php软链

可以将php的执行路径追加到/usr/bin下,即类似:

ln -s /usr/local/php/bin/php /usr/bin/php

解决方案二:使用alias起别名

或者通过使用别名 alias 的方式来注册脚本命令:

# vim /etc/bashrc

#PhalApi - 自动生成SQL语句

alias phalapi-buildsqls='/usr/local/php/bin/php /path/to/PhalApi/phalapi-buildsqls'

需要注意的是,保存后,需要source一下,即:

# source /etc/bashrc

$ source /etc/bashrc

1.2.5 四个脚本命令使用说明

(1) 创建应用项目

如前文所述,可以通过phalapi-buildapp脚本来创建一个新的项目,其使用说明如下:

e4f7587d906e7a597c5b8c4c77f2f8b7.png

(2)生成单元测试骨架代码

当需要对某个类进行单元测试时,可使用phalapi-buildtest脚本生成对应的单元测试代码,其使用如下:

1822d1d3045ccfb846f5e1c83dc2e98f.png

其中,

第一个参数file_path:是待测试的源文件相对/绝对路径

第二个参数class_name:是待测试的类名

第三个参数bootstrap:是测试启动文件,通常是./test_env.php文件

第四个参数author:你的名字,默认是dogstar

通常,可以先写好类名以及相应的接口,然后再使用此脚本生成单元测试骨架代码。

以Default.Index默认接口服务为例,需要为此生成测试骨架代码,可以依次这样操作:

$ cd /path/to/PhalApi

$ cd ./Demo/Tests

$ ../../PhalApi/phalapi-buildtest ../Api/Default.php Api_Default ./test_env.php > ./Api/Api_Default_Test.php

最后,需要将生成好的代码,重定向保存到你要保存的位置。通常与产品代码对齐,并以“{类名} + _Test.php”方式命名。

(3)生成数据库建表SQL

当需要创建数据库表时,可以使用phalapi-buildsqls脚本结合配置文件dbs.php生成建表SQL,这个工具在创建分表时尤其有用,其使用如下:

d3e5e8529159b9e89386871d9824a77d.png

其中,

第一个参数dbs_config:是指向数据库配置文件./Config/dbs.php的路径,可以使用相对路径

第二个参数table:是需要创建sql的表名,每次生成只支持一个

第三个参数engine:(可选)是指数据库表的引擎,可以是:Innodb或者MyISAM

温馨提示:需要提前先将建表的SQL语句(除主键id和ext_data字段外)放置到./Data/目录下,文件名为:{表名}.sql。

如,我们需要生成10用户user_session表的的建表语句,那么需要添加数据文件./Data/user_session.sql(除主键id和ext_data字段外):

`user_id` bigint(20) DEFAULT '0' COMMENT '用户id',

`token` varchar(64) DEFAULT '' COMMENT '登录token',

`client` varchar(32) DEFAULT '' COMMENT '客户端来源',

`times` int(6) DEFAULT '0' COMMENT '登录次数',

`login_time` int(11) DEFAULT '0' COMMENT '登录时间',

`expires_time` int(11) DEFAULT '0' COMMENT '过期时间',

然后,进入到项目根目录,执行命令:

$ php ./PhalApi/phalapi-buildsqls ./Config/dbs.php user_session

就会看到生成好的SQL语句了,类似:

CREATE TABLE `phalapi_user_session_0` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_1` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_2` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_3` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_4` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_5` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_6` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_7` (

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_8` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `phalapi_user_session_9` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

... ...

`ext_data` text COMMENT 'json data here',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

最后,便可把生成好的SQL语句,导入到数据库,进行建表操作。

(4)生成接口代码 - V1.3.4及以上版本支持

当需要编写开发一个接口时,可以使用phalapi-buildcode脚本生成基本的Api、Domain和Model代码。此脚本不是很强悍的,项目可以根据自己的喜欢使用,或者修改定制自己的模板。其使用如下:

efc12511ca34bf1e343f17748b302000.png

其中,

第一个参数app_path:是指项目根目录到你的项目的相对路径

第二个参数api_path:是需要创建接口的相对项目的相对路径,支持多级目录,可不带.php后缀

第三个参数author:(可选)你的名字,默认为空

第四个参数overwrite:(可选)是否覆盖已有的代码文件,默认为否

例如,我们要为Demo项目生成一个新的接口文件./AA/BB/CC.php,则可以:

$ cd /path/to/PhalApi

$ ./PhalApi/phalapi-buildcode Demo AA/BB/CC dogstar

Start to create folder /mnt/hgfs/F/PHP/PhalApi/PhalApi/../Demo/Api/AA/BB ...

Start to create folder /mnt/hgfs/F/PHP/PhalApi/PhalApi/../Demo/Domain/AA/BB ...

Start to create folder /mnt/hgfs/F/PHP/PhalApi/PhalApi/../Demo/Model/AA/BB ...

Start to create file /mnt/hgfs/F/PHP/PhalApi/PhalApi/../Demo/Api/AA/BB/CC.php ...

Start to create file /mnt/hgfs/F/PHP/PhalApi/PhalApi/../Demo/Domain/AA/BB/CC.php ...

Start to create file /mnt/hgfs/F/PHP/PhalApi/PhalApi/../Demo/Model/AA/BB/CC.php ...

OK! AA/BB/CC has been created successfully!

可以看到生成的代码有:

5261baf8818e72c6aff60225b248286d.png

访问接口:

9763e51ae044bfa338346b93734b540c.png

最后,在线接口列表,可以看到:

15a0325a017e3c3df2075e51272ae702.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值