A thin client wrapper around the neocities api

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

This package is auto-updated.

Last update: 2023-05-12 20:45:48 UTC


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


composer require reed-jones/neocities


// 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'


Deleting Files

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

$result = $neocities->delete([


Listing All Files On Your Site

$result = $neocities->list();


Getting Information About Your Site

$result = $neocities->info();


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();


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

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