mirror of
https://github.com/ovh/php-ovh.git
synced 2023-11-05 03:20:26 +01:00
Use a PHP build tool, Phing instead of Grunt.
As I already mentioned in the #35 issue, I think it's more suitable to use a PHP build tool instead of a JS one. I don't tell that Grunt is not a powerful tool but it's a complicated installation process to be able to run tests. Phing is required as a composer package and can be run directly after the composer install. Examples: ``` vendor/bin/phing vendor/bin/phing test vendor/bin/phing clean vendor/bin/phing phplint vendor/bin/phing phpcs vendor/bin/phing phpunit vendor/bin/phing phpunit -Donly.units=true #The travis test process ``` The only difference here is the watch process. Phing doesn't have that kind of feature. It can be emulated with different tasks but require a lot more work. I think that PR is the first step, maybe we can go further if necessary. Signed-off-by: Stéphane HULARD <s.hulard@chstudio.fr>
This commit is contained in:
parent
815b07ba22
commit
c13758720b
2
.gitignore
vendored
2
.gitignore
vendored
@ -3,3 +3,5 @@ vendor
|
|||||||
composer.lock
|
composer.lock
|
||||||
composer.phar
|
composer.phar
|
||||||
/phpunit.xml
|
/phpunit.xml
|
||||||
|
/build.properties
|
||||||
|
/docs
|
||||||
|
@ -6,7 +6,7 @@ addons:
|
|||||||
language: php
|
language: php
|
||||||
php:
|
php:
|
||||||
- hhvm
|
- hhvm
|
||||||
- 7.0
|
- 7.0
|
||||||
- 5.6
|
- 5.6
|
||||||
- 5.5
|
- 5.5
|
||||||
- 7.0
|
- 7.0
|
||||||
@ -15,4 +15,4 @@ before_script:
|
|||||||
- composer self-update
|
- composer self-update
|
||||||
- composer install
|
- composer install
|
||||||
|
|
||||||
script: phpunit tests/ApiTest.php
|
script: vendor/bin/phing test -Donly.units=true
|
||||||
|
77
Gruntfile.js
77
Gruntfile.js
@ -1,77 +0,0 @@
|
|||||||
/**
|
|
||||||
* Gruntfile.js
|
|
||||||
*/
|
|
||||||
module.exports = function(grunt) {
|
|
||||||
grunt.initConfig({
|
|
||||||
pkg: grunt.file.readJSON('package.json'),
|
|
||||||
php: {
|
|
||||||
dist: {
|
|
||||||
options: {
|
|
||||||
port: 8080,
|
|
||||||
base: 'web',
|
|
||||||
open: true,
|
|
||||||
keepalive: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
phpcs: {
|
|
||||||
application: {
|
|
||||||
dir: ['src/']
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
bin: 'vendor/bin/phpcs',
|
|
||||||
standard: 'PSR2'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
phplint: {
|
|
||||||
options: {
|
|
||||||
swapPath: '/tmp'
|
|
||||||
},
|
|
||||||
all: ['src/*.php']
|
|
||||||
},
|
|
||||||
phpdocumentor: {
|
|
||||||
dist: {
|
|
||||||
options: {
|
|
||||||
directory: './src/',
|
|
||||||
bin: 'vendor/bin/phpdoc.php',
|
|
||||||
target: 'docs/'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
clean: {
|
|
||||||
phpdocumentor: 'docs/'
|
|
||||||
},
|
|
||||||
phpunit: {
|
|
||||||
unit: {
|
|
||||||
dir: 'tests'
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
bin: 'vendor/bin/phpunit',
|
|
||||||
colors: true,
|
|
||||||
testdox: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
scripts: {
|
|
||||||
files: ['src/*.php', 'src/**/*.php', 'tests/*.php', 'tests/**/*.php'],
|
|
||||||
tasks: ['precommit'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
grunt.loadNpmTasks('grunt-phpcs');
|
|
||||||
grunt.loadNpmTasks('grunt-php');
|
|
||||||
grunt.loadNpmTasks('grunt-phplint');
|
|
||||||
grunt.loadNpmTasks('grunt-phpunit');
|
|
||||||
grunt.loadNpmTasks('grunt-phpdocumentor');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
||||||
grunt.registerTask('phpdocs', [
|
|
||||||
'clean:phpdocumentor',
|
|
||||||
'phpdocumentor'
|
|
||||||
]);
|
|
||||||
grunt.registerTask('precommit', ['phplint:all', 'phpcs', 'phpunit:unit']);
|
|
||||||
grunt.registerTask('default', ['phplint:all', 'phpcs', 'phpunit:unit', 'phpdocs']);
|
|
||||||
grunt.registerTask('server', ['php']);
|
|
||||||
};
|
|
16
README.md
16
README.md
@ -27,7 +27,7 @@ Quickstart
|
|||||||
|
|
||||||
To download this wrapper and integrate it inside your PHP application, you can use [Composer](https://getcomposer.org).
|
To download this wrapper and integrate it inside your PHP application, you can use [Composer](https://getcomposer.org).
|
||||||
|
|
||||||
Add the repository in your **composer.json** file or, if you don't already have
|
Add the repository in your **composer.json** file or, if you don't already have
|
||||||
this file, create it at the root of your project with this content:
|
this file, create it at the root of your project with this content:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
@ -58,7 +58,7 @@ How to login as a user?
|
|||||||
|
|
||||||
To communicate with APIs, the SDK uses a token on each request to identify the
|
To communicate with APIs, the SDK uses a token on each request to identify the
|
||||||
user. This token is called *Consumer Key*. To have a validated *Consumer Key*,
|
user. This token is called *Consumer Key*. To have a validated *Consumer Key*,
|
||||||
you need to redirect your user on specific authentication page. Once the user has
|
you need to redirect your user on specific authentication page. Once the user has
|
||||||
logged in, the token is validated and user will be redirected on __$redirection__ url.
|
logged in, the token is validated and user will be redirected on __$redirection__ url.
|
||||||
|
|
||||||
```php
|
```php
|
||||||
@ -173,11 +173,10 @@ you can install local npm project in a clone a project
|
|||||||
git clone https://github.com/ovh/php-ovh.git
|
git clone https://github.com/ovh/php-ovh.git
|
||||||
cd php-ovh
|
cd php-ovh
|
||||||
php composer.phar install
|
php composer.phar install
|
||||||
npm install
|
|
||||||
|
|
||||||
To generate documentation, it's possible to use directly:
|
To generate documentation, it's possible to use directly:
|
||||||
|
|
||||||
grunt default
|
vendor/bin/phing phpdocs
|
||||||
|
|
||||||
Documentation is available in docs/ directory.
|
Documentation is available in docs/ directory.
|
||||||
|
|
||||||
@ -190,12 +189,15 @@ local npm project in a clone a project
|
|||||||
git https://github.com/ovh/php-ovh.git
|
git https://github.com/ovh/php-ovh.git
|
||||||
cd php-ovh
|
cd php-ovh
|
||||||
php composer.phar install
|
php composer.phar install
|
||||||
npm install
|
|
||||||
|
|
||||||
Edit **phpunit.xml** file with your credentials to pass functionals tests. Then,
|
Edit **phpunit.xml** file with your credentials to pass functionals tests. Then,
|
||||||
you can run directly unit and functionals tests with grunt.
|
you can run directly unit and functionals tests with [phing](http://www.phing.info/).
|
||||||
|
|
||||||
grunt
|
vendor/bin/phing test
|
||||||
|
|
||||||
|
To skip functionals and run unit tests only, you can use the `only.units` option :
|
||||||
|
|
||||||
|
vendor/bin/phing test -Donly.units=true
|
||||||
|
|
||||||
Supported APIs
|
Supported APIs
|
||||||
--------------
|
--------------
|
||||||
|
114
build.xml
Normal file
114
build.xml
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<project name="ovh/ovh" default="all">
|
||||||
|
<property name="base" value="${project.basedir}/" />
|
||||||
|
<property environment="env" />
|
||||||
|
|
||||||
|
<if>
|
||||||
|
<available file="${base}build.properties" property="" />
|
||||||
|
<then>
|
||||||
|
<property file="${base}build.properties" override="true" />
|
||||||
|
</then>
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<!--##########################################################################################################-->
|
||||||
|
<target name="help">
|
||||||
|
<echo message="${phing.project.name} on [${git.branch}]" />
|
||||||
|
<echo message=" Available commands are:" />
|
||||||
|
<echo message=" test -> Run unit tests" />
|
||||||
|
<echo message=" clean -> Clean current environment" />
|
||||||
|
<echo message=" server -> Launch PHP built-in server" />
|
||||||
|
<echo message=" watch -> Run precommit task on every file changed" />
|
||||||
|
<echo message=" precommit -> Source code validation before commit" />
|
||||||
|
<echo message=" Specific tools tasks:" />
|
||||||
|
<echo message=" phpcs -> Run PHP Code Sniffer" />
|
||||||
|
<echo message=" phplint -> Run PHP Lint" />
|
||||||
|
<echo message=" phpdocs -> Run PHP Documentor" />
|
||||||
|
<echo message=" phpunit -> Run PHPUnit" />
|
||||||
|
</target>
|
||||||
|
<!--##########################################################################################################-->
|
||||||
|
<target name="test" description="Run unit tests">
|
||||||
|
<phingcall target="phpunit" />
|
||||||
|
</target>
|
||||||
|
<target name="clean" description="Clean current environment">
|
||||||
|
<delete dir="docs" includeemptydirs="true" verbose="true" failonerror="true" />
|
||||||
|
</target>
|
||||||
|
<target name="precommit" description="Source code validation before commit">
|
||||||
|
<phingcall target="phplint" />
|
||||||
|
<phingcall target="phpcs" />
|
||||||
|
<phingcall target="phpunit" />
|
||||||
|
</target>
|
||||||
|
<target name="all" description="Make a full integration check">
|
||||||
|
<phingcall target="phplint" />
|
||||||
|
<phingcall target="phpcs" />
|
||||||
|
<phingcall target="phpunit" />
|
||||||
|
<phingcall target="phpdocs" />
|
||||||
|
</target>
|
||||||
|
<!--##########################################################################################################-->
|
||||||
|
<target name="phpcs" description="Run PHP Code Sniffer">
|
||||||
|
<phpcodesniffer
|
||||||
|
standard="PSR2"
|
||||||
|
format="summary"
|
||||||
|
>
|
||||||
|
<fileset dir=".">
|
||||||
|
<include name="src/**/*.php"/>
|
||||||
|
<include name="test/**/*.php"/>
|
||||||
|
</fileset>
|
||||||
|
</phpcodesniffer>
|
||||||
|
</target>
|
||||||
|
<target name="phpcbf" description="Run PHP Code Sniffer">
|
||||||
|
<exec command="vendor/bin/phpcbf --standard=PSR2 src" logoutput="true" />
|
||||||
|
</target>
|
||||||
|
<target name="phplint" description="Run PHP Lint">
|
||||||
|
<phplint deprecatedAsError="true">
|
||||||
|
<fileset dir=".">
|
||||||
|
<include name="src/**/*.php"/>
|
||||||
|
<include name="test/**/*.php"/>
|
||||||
|
</fileset>
|
||||||
|
</phplint>
|
||||||
|
</target>
|
||||||
|
<target name="phpdocs" description="Run PHP Documentor" depends="clean">
|
||||||
|
<if>
|
||||||
|
<not><available file="docs" /></not>
|
||||||
|
<then>
|
||||||
|
<mkdir dir="docs" />
|
||||||
|
</then>
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<phpdoc2 destdir="docs">
|
||||||
|
<fileset dir="src">
|
||||||
|
<include name="**/*.php" />
|
||||||
|
</fileset>
|
||||||
|
</phpdoc2>
|
||||||
|
</target>
|
||||||
|
<target name="phpunit" description="Run PHPUnit">
|
||||||
|
<if>
|
||||||
|
<and>
|
||||||
|
<isset property="only.units" />
|
||||||
|
<equals arg1="${only.units}" arg2="true" />
|
||||||
|
</and>
|
||||||
|
<then>
|
||||||
|
<fileset dir="tests" id="tests">
|
||||||
|
<include name="ApiTest.php"/>
|
||||||
|
</fileset>
|
||||||
|
</then>
|
||||||
|
<else>
|
||||||
|
<fileset dir="tests" id="tests">
|
||||||
|
<include name="**/*.php"/>
|
||||||
|
</fileset>
|
||||||
|
</else>
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<phpunit
|
||||||
|
haltonfailure="true"
|
||||||
|
haltonerror="true"
|
||||||
|
bootstrap="tests/bootstrap.php"
|
||||||
|
printsummary="true"
|
||||||
|
>
|
||||||
|
<formatter type="plain" usefile="false"/>
|
||||||
|
<batchtest>
|
||||||
|
<fileset refid="tests" />
|
||||||
|
</batchtest>
|
||||||
|
</phpunit>
|
||||||
|
</target>
|
||||||
|
<!--##########################################################################################################-->
|
||||||
|
</project>
|
@ -11,6 +11,7 @@
|
|||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "4.*",
|
"phpunit/phpunit": "4.*",
|
||||||
"phpdocumentor/phpdocumentor": "2.*",
|
"phpdocumentor/phpdocumentor": "2.*",
|
||||||
"squizlabs/php_codesniffer": "1.*"
|
"squizlabs/php_codesniffer": "2.*",
|
||||||
|
"phing/phing": "^2.14"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
15
package.json
15
package.json
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "ovh-ovh",
|
|
||||||
"version": "1.1.0",
|
|
||||||
"project": "Ovh",
|
|
||||||
"dependencies": {
|
|
||||||
"grunt": "~0.4.1",
|
|
||||||
"grunt-contrib-clean": "~0.5.0",
|
|
||||||
"grunt-phpcs": "~0.2.2",
|
|
||||||
"grunt-php": "~0.3.2",
|
|
||||||
"grunt-phplint": "~0.0.5",
|
|
||||||
"grunt-phpunit": "~0.3.3",
|
|
||||||
"grunt-phpdocumentor": "~0.4.1",
|
|
||||||
"grunt-contrib-watch ": "~0.6.1"
|
|
||||||
}
|
|
||||||
}
|
|
13
src/Api.php
13
src/Api.php
@ -228,13 +228,12 @@ class Api
|
|||||||
$url = $this->endpoint . $path;
|
$url = $this->endpoint . $path;
|
||||||
$request = new Request($method, $url);
|
$request = new Request($method, $url);
|
||||||
if (isset($content) && $method == 'GET') {
|
if (isset($content) && $method == 'GET') {
|
||||||
|
|
||||||
$query_string = $request->getUri()->getQuery();
|
$query_string = $request->getUri()->getQuery();
|
||||||
|
|
||||||
$query = array();
|
$query = array();
|
||||||
if (!empty($query_string)) {
|
if (!empty($query_string)) {
|
||||||
$queries = explode('&', $query_string);
|
$queries = explode('&', $query_string);
|
||||||
foreach($queries as $element) {
|
foreach ($queries as $element) {
|
||||||
$key_value_query = explode('=', $element, 2);
|
$key_value_query = explode('=', $element, 2);
|
||||||
$query[$key_value_query[0]] = $key_value_query[1];
|
$query[$key_value_query[0]] = $key_value_query[1];
|
||||||
}
|
}
|
||||||
@ -243,14 +242,10 @@ class Api
|
|||||||
$query = array_merge($query, (array)$content);
|
$query = array_merge($query, (array)$content);
|
||||||
|
|
||||||
// rewrite query args to properly dump true/false parameters
|
// rewrite query args to properly dump true/false parameters
|
||||||
foreach($query as $key => $value)
|
foreach ($query as $key => $value) {
|
||||||
{
|
if ($value === false) {
|
||||||
if ($value === false)
|
|
||||||
{
|
|
||||||
$query[$key] = "false";
|
$query[$key] = "false";
|
||||||
}
|
} elseif ($value === true) {
|
||||||
elseif ($value === true)
|
|
||||||
{
|
|
||||||
$query[$key] = "true";
|
$query[$key] = "true";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user