有夢想的人學習能力特別強,而且不拒絕任何新東西。 -- 《理想豐滿》
將代碼上傳到服務器并解壓后,訪問: ./Public/install/ 下的安裝向?qū)В缭跒g覽器打開:
http://dev.phalapi.com/install/
然后按照提示,一步步操作即可:
在Windows系統(tǒng)下,可以手動創(chuàng)建一個新的項目。
假設目錄為: F:\xampp\htdocs\PhalApi
以下是簡單的創(chuàng)建操作:
在./PhalApi目錄下新建一個自己的項目目錄,通常以項目名稱命名,如項目MyApp對應:
然后,再分別在里面添加接口目錄Api、領域目錄Domain、數(shù)據(jù)源目錄Model和通用目錄Common,即:
全部的接口類文件需要放置到./Api 目錄下,你可以嘗試編寫一個簡單的Default.Index接口,也可以直接將./Demo/Api/Default.php文件復制過來。
將./Public/demo目錄復制一份為對應項目名稱小寫的目錄,如這里的myapp:
注意!這里需要修改./Public/myapp/index.php和./Public/myapp/checkApiParams.php中的目錄:
在瀏覽器輸入以下鏈接:
http://localhost/phalapi/public/myapp/
應該可以看到:
在Linux系統(tǒng)下,我們可以使用腳本快速生成一個項目結(jié)構,此過程只需要1分鐘左右。
簡明操作如下:
phalapi-buildapp腳本用于創(chuàng)建項目,進入 ./PhalApi/PhalApi/ 后,可以看到這個腳本。
不過,首先,需要為這個腳本添加執(zhí)行權限:
$ chmod +x ./phalapi-buildapp
然后,調(diào)用腳本創(chuàng)建一個MyApp的項目:
$ ./phalapi-buildapp MyApp
OK!
回到 /path/to/PhalApi 目錄,你會發(fā)現(xiàn)生成了一個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/
可以看到接口結(jié)果輸出。
如果安裝了PHPUnit,執(zhí)行一下單元測試,也是通過的!
$ phpunit ./Tests/
PHPUnit 4.3.4 by Sebastian Bergmann.
...
Time: 7 ms, Memory: 5.75Mb
OK (3 tests, 13 assertions)
請確保日志目錄Runtime擁有寫入的權限,可以給0777 。
對于腳本命令,需要添加執(zhí)行權限和軟鏈,便于日后使用:
$ 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
可以將php的執(zhí)行路徑追加到/usr/bin下,即類似:
ln -s /usr/local/php/bin/php /usr/bin/php
或者通過使用別名 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
如前文所述,可以通過phalapi-buildapp
腳本來創(chuàng)建一個新的項目,其使用說明如下:
當需要對某個類進行單元測試時,可使用phalapi-buildtest
腳本生成對應的單元測試代碼,其使用如下:
其中,
通常,可以先寫好類名以及相應的接口,然后再使用此腳本生成單元測試骨架代碼。
以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
最后,需要將生成好的代碼,重定向保存到你要保存的位置。通常與產(chǎn)品代碼對齊,并以“{類名} + _Test.php”方式命名。
當需要創(chuàng)建數(shù)據(jù)庫表時,可以使用phalapi-buildsqls
腳本結(jié)合配置文件dbs.php生成建表SQL,這個工具在創(chuàng)建分表時尤其有用,其使用如下:
其中,
溫馨提示:需要提前先將建表的SQL語句(除主鍵id和ext_data字段外)放置到./Data/目錄下,文件名為:{表名}.sql。
如,我們需要生成10用戶user_session表的的建表語句,那么需要添加數(shù)據(jù)文件./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 '登錄次數(shù)',
`login_time` int(11) DEFAULT '0' COMMENT '登錄時間',
`expires_time` int(11) DEFAULT '0' COMMENT '過期時間',
然后,進入到項目根目錄,執(zhí)行命令:
$ 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語句,導入到數(shù)據(jù)庫,進行建表操作。
當需要編寫開發(fā)一個接口時,可以使用phalapi-buildcode
腳本生成基本的Api、Domain和Model代碼。此腳本不是很強悍的,項目可以根據(jù)自己的喜歡使用,或者修改定制自己的模板。其使用如下:
其中,
例如,我們要為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!
可以看到生成的代碼有:
訪問接口:
最后,在線接口列表,可以看到:
更多建議: