reed-jones/neocities

A thin client wrapper around the neocities api

v0.2.1 2020-02-10 13:26 UTC

This package is auto-updated.

Last update: 2024-04-12 22:52:17 UTC


README

Neocities-php is a PHP wrapper of the Neocities.org API. Now with Jigsaw integration

Installation

composer require reed-jones/neocities

Usage

// First we include the library
use ReedJones\Neocities\Neocities;

// Then we log in using either username/password or api key

$neocities = new Neocities([
    'username' => 'YOUR_USERNAME',
    'password' => 'YOUR_PASSWORD'
]);

// or

$neocities = new Neocities([
    'apiKey' => 'YOUR_API_KEY'
]);

Uploading Files

To upload files pass an array with the key being the desired upload name on the server, and the value being the path to the local file.

$result = $neocities->upload([
    'hello.html' => './local.html',
    'about.html' => './AboutMe.html'
]);

var_dump($result);

Deleting Files

To delete files from the server, simply pass an array of the files you wish to delete.

$result = $neocities->delete([
    'hello.html',
    'about.html'
]);

var_dump($result);

Listing All Files On Your Site

$result = $neocities->list();

var_dump($result);

Getting Information About Your Site

$result = $neocities->info();

var_dump($result);

Getting Your API Key

If you are logging in using your username/password, you can use this to retrieve your API key.

$result = $neocities->key();

var_dump($result);

Jigsaw Integration

Neocities-PHP can be integrated with Tighten's Jigsaw. After installing this packing into your jigsaw project, Register the plugin in bootstrap.php

// bootstrap.php
Jigsaw::mixin(new \ReedJones\Neocities\NeocitiesDeployment($container));

With this in place, all that is left to do is add your neocities api key your your .env file (if id doesn't exist, create it)

# .env
NEO_CITIES_API_KEY="YOUR_API_KEY_HERE"

Now to build & deploy from the command line, run the new jigsaw deploy command which accepts the same parameters as the build command.

# Build & deploy your 'local' build
./vendor/bin/jigsaw deploy
# Build & deploy your 'production' build
./vendor/bin/jigsaw deploy production

Jigsaw Programmatic Usage

After following the above instructions for setting up a neocities deployment with jigsaw, a deployToNeocities method is available for programmatic use from bootstrap.php (or elsewhere). An Example:

// Programmatic API Usage
$events->afterBuild(function (Jigsaw $jigsaw) {
    if ($jigsaw->getEnvironment() === 'production') {
        // Automatic deployment after all production builds
        $jigsaw->deployToNeocities();
    }
});