⚠️ Instant Articles will not be available starting April 20, 2023
All related developer tools will be archived.
The Facebook Instant Articles SDK for PHP provides a native interface for creating and publishing Instant Articles. The SDK enables developers to more easily integrate Instant Articles into content management systems and in turn enables journalist and publishers to easily publish Instant Articles.
The SDK consists of three components:
The Facebook Instant Articles PHP SDK can be installed with the Composer dependency manager by running this command on your project's root folder:
$ composer require facebook/facebook-instant-articles-sdk-php
After the installation, you can include the auto loader script in your source with:
require_once 'vendor/autoload.php';
You can find examples on how to use the different components of this SDK to integrate it with your CMS in the Getting Started section of the documentation.
Clone the repository
$ git clone https://github.com/facebook/facebook-instant-articles-sdk-php.git
Composer is a prerequisite for testing and developing. Install composer globally, then install project dependencies by running this command in the project's root directory:
$ composer install
To run the tests:
$ composer test
To fix and check for coding style issues:
$ composer cs
Extra lazy? Run
$ composer all
to fix and check for coding style issues, and run the tests.
If you change structure, paths, namespaces, etc., make sure you run the autoload generator:
$ composer dump-autoload
For us to accept contributions you will have to first sign the Contributor License Agreement. Please see CONTRIBUTING for details.
We have provide a Docker environment to ensure a consistent testing & development environment.
Use docker-compose run composer composer install
to get started.
If you are encountering problems, the following tips may help in troubleshooting issues:
Warnings from the Transformer can be seen with $transformer->getWarnings()
method.
If content is missing from your transformed article, more likely than not there isn't a Transformer Rule matching an element in your source markup. See how to configure appropriate rules for your content in the Transformer Rules documentation.
Set the threshold
in the transformer Logger level to DEBUG
to expose more details about the items processed by the Transformer. TransformerLog::setLevel(TransformerLog::DEBUG);
Refer to the existing tests of the Elements
for examples of what is required of each and to potentially create your own tests (which can be run with $ composer test
).
Please see the license file for more information.