Developing
When developing or testing an extension using the SDK it may be useful to connect it to your local Nosto environment or the staging environment instead of the live one. This can be done by modifying a "Dot Env" (.env) file in the Nosto SDK that the extension uses. For example for Magento extension, copy MAGENTO/lib/nosto/php-sdk/.env.example to MAGENTO/lib/nosto/php-sdk/.env and modify the parameters.
NOSTO_SERVER_URLis the Nosto url used in the store frontNOSTO_API_BASE_URLis the base url for all API calls to NostoNOSTO_OAUTH_BASE_URLis the base url for connecting Nosto accounts through OAuthNOSTO_WEB_HOOK_BASE_URLis the base url for Nosto web hooksNOSTO_IFRAME_ORIGIN_REGEXPis a regexp for validating window.postMessage() event origin dispatched by the account configuration iframe
The sample .env file can viewed here
Note that you can only have one .env file at a time, and if you wish to switch between environments you can copy them into .env.[environment] files. This way you can switch the environment by replacing the .env with the correct .env.[environment] file.
Coding Standards
The extension follows a customised version the PSR-2 coding standards that come bundled with PHP Code Sniffer. A custom ruleset is bundles with the code. The following warnings are suppressed:
Warnings about missing namespaces
Install Codesniffer
First cd into the root directory.
Then install Codesniffer via composer:
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
php phpcs.phar installRunning Codesniffer
You can run Code Sniffer using
phpcs --standard=ruleset.xml --extensions=php --ignore=lib --ignore=_data --ignore=_support --ignore=tests .`Testing
The SDK is unit tested with Codeception (http://codeception.com/). API and OAuth2 requests are tested using api-mock server (https://www.npmjs.com/package/api-mock) running on Node.
Install Codeception & API-mock
First cd into the root directory.
Then install Codeception via composer:
php composer.phar installAnd then install Node (http://nodejs.org/) and the npm package manager (https://www.npmjs.com/). Node 0.12 is required by api-mock so you might need to install nvm (http://nvm.sh) and set node version to 0.12 (nvm install 0.12) before running api-mock . After that you can install the api-mock server via npm:
npm install -g api-mockRunning tests
First cd into the root directory.
Then start the api-mock server with the API blueprint:
api-mock tests/api-blueprint.mdWhen running the tests for the first time you must generate the helper classes by running:
vendor/bin/codecept buildThen in another window run the tests:
vendor/bin/codecept runLast updated
Was this helpful?