neoseeker/cloudflare

CloudFlare API - PHP

1.11.1 2017-08-04 19:01 UTC

README

Notes about this fork:

We made this fork because we encountered a problem where Cloudflare returns a 404 with errorcode 1000 if you try to run Zone\Firewall\AccessRules->rules(). It's possible this problem is new on CF in 2019.

The problem is that the original code always has a double / in the URL request paths.

Below is the original readme.md:

Note: Please use the official Cloudflare PHP package

https://github.com/cloudflare/cloudflare-php

I will continue to fix bugs but there will be no futher development on this library given Cloudflare have released an official package.

You can read more about the official package here:

Build Status Coverage Status Dependency Status Latest Stable Version Total Downloads StyleCI License Scrutinizer Code Quality

CloudFlare API - PHP

The documentation for the API can be found at https://api.cloudflare.com, I will try to update this as soon as possible when new features are added to the API. If I miss one please submit a pull request.

If you spot an issue with the package just let me know via issues but please include as much detail as possible, ideally with code examples, environment information etc.

Documentation for this package can be viewed here: https://jamesryanbell.github.io/cloudflare/

Installation

Installation should be done via composer, details of how to install composer can be found at https://getcomposer.org/

$ composer require jamesryanbell/cloudflare

Features

The current feature list includes:

Usage

In situations where you want to make multiple calls to the API across different services it's easier to create a connection to the api first and then pass that around the other services e.g.

    use Cloudflare\Zone\Dns;

    // Create a connection to the Cloudflare API which you can
    // then pass into other services, e.g. DNS, later on
    $client = new Cloudflare\Api('email@example.com', 'API_KEY');

    // Create a new DNS record
    $dns = new Cloudflare\Zone\Dns($client);
    $dns->create('12345678901234567890', 'A', 'name.com', '127.0.0.1', 120);

If you are just performing a single action then you can connect to the API directly when you instantiate the class e.g.

    use Cloudflare\Zone\Dns;

    // Create a connection to the Cloudflare API which you can
    // then pass into other services, e.g. DNS, later on
    $dns = new Cloudflare\Zone\Dns('email@example.com', 'API_KEY');
    $dns->create('12345678901234567890', 'TXT', 'name.com', '127.0.0.1', 120);

PageRules

    use Cloudflare\Zone\Pagerules;

    // Define your targets
    // Currently you can only specify one URL per page rule but this implementation matches the API
    // so I am leaving it for now in the assumption they are planning to add multiple targets.
    $targets = [
        [
            'target' => 'url',
            'constraint' =>
            [
                'operator' => 'matches',
                'value' => 'http://example.co.uk/*'
            ]
        ]
    ];

    // Define your actions
    // Each action is held within it's own array.
    $actions = [
        [
            'id' => 'always_online',
            'value' => 'on'
        ]
    ];

    $pagerules = new Cloudflare\Zone\Pagerules('email@example.com', 'API_KEY');
    $pagerules->create($zoneId, $targets, $actions);

License

MIT