Webfaction will end it's services possibly from May 2021, so the package won't be maintained in the future.
Webfaction API wrapper for Laravel
Laravel 5.x
Install with composer
composer require subdesign/laravel-webfaction:^1.0.0If you use Laravel 5.5+, you don't need to do the following two steps.
Add Service Provider to the config/app.php
Subdesign\LaravelWebfaction\WebfactionServiceProvider::class,Add Facade to the config/app.php
'Webfaction' => Subdesign\LaravelWebfaction\Facades\Webfaction::class,Publish the webfaction.php config file
php artisan vendor:publish --provider="Subdesign\LaravelWebfaction\WebfactionServiceProvider"Set the credentials and other data in the .env file
WF_USERNAME=
WF_PASSWORD=
WF_MACHINE=WebXXX
WF_DEBUG=false
WF_DEBUG_LEVEL=2Where WF_USERNAME and WF_PASSWORD is your control panel username and password.
If you have multiple machines, you can define the machine name WF_MACHINE like Web123 on which one you want to use the API.
WF_DEBUG will show debug information in the response, with WF_DEBUG_LEVEL you can set debug verbosity. Values: 0, 1 and 2.
The package has a dependency which is automatically installed: https://github.com/gggeek/phpxmlrpc
You can find some examples here but all API methods described on https://docs.webfaction.com/xmlrpc-api/apiref.html.
You have to use API calls the same way as you find in the API documentation. Eg. list_disk_usage in docs is the method list_disk_usage() in the API call.
List disk usage:
Webfaction::list_disk_usage();On create methods, you have to pass an array of values (except session_id) in the order of the method description! session_id is dynamically set in the background.
Creating an app:
Webfaction::create_app([
"app_name", // name of your app
"static_php72", // app type
false, // autostart app with autostart.cgi
"", // extra_info field content
false // open port
]);If you don't like Facades, you can use the helper:
webfaction()->list_mailboxes();Run
composer testThe MIT License (MIT). Please see License File for more information.