Project skeleton generator for Laravel & Lumen projects

Overview

Skeletor

Build Status NZ Software License

Skeletor is a PHP based CLI tool that has been built to take away the pain of setting up a base project skeleton for Laravel & Lumen projects. When creating a project using Skeletor you will be able to pick and choose from a set of packages and it automates a lot of the manual configuration like package providers, facades and environment variables. It also enables you to automatically install certain packages that you need for every project.

If you already have Skeletor installed you can skip to the create a project section.

Install Skeletor

Download the Skeletor installer using Composer:

composer global require pixelfusion/skeletor

Make sure to place the ~/.composer/vendor/bin directory (or the equivalent directory for your OS) in your $PATH so the Skeletor executable can be located by you system.

Update Skeletor

If you already have installed Skeletor and you need to update you can use the following command:

composer global update pixelfusion/skeletor

Create a project

Once installed, the skeletor project:create command will create a fresh project installation in the directory you specify. For instance, skeletor project:create helloworld will create a directory named helloworld containing a fresh project installation with all of the selected packages and templates.

skeletor project:create helloworld

Customisation

It's easy to change what packages Skeletor offers you to install when creating a new project. Packages are configured in the App/Config/skeletor.yml file, this is where you can add new packages or remove the ones you don't need.

Adding packages

You can also add a package with skeletor package:add package/name, it will search on Packagist and give you some options.

Removing packages

To remove a package just remove it from the App/Config/skeletor.yml file and remove the packages from the Packages directory.

Dry-run option

When you want to test the install process, you can use the dry-run option.

skeletor project:create helloworld --dry-run
Comments
  • Feature/githooks package fix

    Feature/githooks package fix

    Introduced a PreInstallPackageInterface that provides a function that runs before a framework/package is installed. This way we can update the composer file before the package is installed as required for the Githooks package.

    opened by kielabokkie 1
  • Allow packages to be installed as dev dependencies

    Allow packages to be installed as dev dependencies

    Some packages like kielabokkie/jsonapi-behat-extension should be installed as dev dependencies. We should have a separate entry in the skeletor.yml file to list dev dependencies.

    enhancement help wanted 
    opened by kielabokkie 1
  • Error if you don't select any optional packages

    Error if you don't select any optional packages

    If you don't select any of the optional packages during installation the following error is thrown:

    [Symfony\Component\Debug\Exception\FatalThrowableError]
      Type error: Argument 1 passed to League\CLImate\TerminalObject\Basic\Table::getDefaultColumnWidths() must be of the type array, boolean given, called in /Users/wouter/Projects/skeletor/vendor/league/climate/src/TerminalObject/
      Basic/Table.php on line 188
    
    bug 
    opened by kielabokkie 1
  • Feature/generate providers

    Feature/generate providers

    | Q | A | |--|--| | Status | READY | | Migrations | NO | | Ticket | |

    Description :open_book:

    • Added support for registering providers and facades.
    • Added the barryvdh/laravel-debugbar, here you can see to registering for the providers/facades in action.
    • Refactored the app a bit
    • Added more documentation

    Steps to test/reproduce :walking:

    1. Pull the branch
    2. Run php skeletor project:create test123 -> build a Laravel 5.4 project with the barryvdh/laravel-debugbar package
    3. After the install, check config/app.php the package reference should be in here.
    4. Run ./vendor/bin/codecept run all the test should pass.

    Todos :white_check_mark:

    • [x] Tests
    • [x] Documentation

    Deployment notes

    At the moment the registering of packages only works for Laravel. You get a notification, when try to setup the packages on Lumen.

    enhancement 
    opened by thijsbouwes 1
  • Feature/package abstraction

    Feature/package abstraction

    Skeletor rewrite, rebuild of the Skeletor. Added some new functionality and created the handels to add new frameworks/packages/templates.

    Some of the changes:

    • Moved from a compiled phar file, to a php project (Like Artisan), this will make the package easily installable trough composer global require
    • The wizard enables you to specify package versions
    • Made all the services register in the container, frameworks and packages register automatically (through the skeletor.yml file).
    • Added a Mountmanager, which enables us to talk between the Skeletor filesystem and the project filesystem.
    • Added unit tests for the base
    • Added argument to the project:create, so the project folder will be created
    • Added option to the project:create, so the install runs dry
    enhancement 
    opened by thijsbouwes 1
  • Allow the Github API url to be configurable

    Allow the Github API url to be configurable

    Currently the Github API url to perform the version check is hardcoded in the skeletor file. We should make it configurable in the skeletor.yml file so it will be easier for other people to fork the project and build their own Skeletor version.

    enhancement 
    opened by kielabokkie 0
  • Implemented version check

    Implemented version check

    To prevent people from creating a project with an out of date Skeletor version we now check if the current version is the latest version when running any Skeletor command.

    opened by kielabokkie 0
  • Check if there are packages set, otherwise dont do anything

    Check if there are packages set, otherwise dont do anything

    | Q | A | |--|--| | Status | READY | | Migrations | NO | | Ticket | Issue-13 |

    Description

    Fix for bug when not selecting optional packages.

    Steps to test/reproduce

    1. Pull branch
    2. Run php skeletor project:create helloworld
    3. Don't select any optional packages
    4. The installer should finish with success
    bug 
    opened by thijsbouwes 0
  • Feature/jsonapi behat plugin fixes

    Feature/jsonapi behat plugin fixes

    | Q | A | |--|--| | Status | READY | | Migrations | NO | | Tests | NO |

    Description

    Added required config for setting up the kielabokkie/jsonapi-behat-extension package

    opened by kielabokkie 0
  • Feature/additional enhancements

    Feature/additional enhancements

    Added skeletor package:add so developers can easily add new packages. Changed the class naming (packages) to the complete slug, so there will be no conflicts.

    enhancement 
    opened by thijsbouwes 0
  • Feature/package api

    Feature/package api

    Integrated the packagist api, in to skeletor. When creating a new project, there will start a asynchronously process to fetch the latest versions.

    When you choose to specify the package versions, the available versions will be shown. The entered versions will be validated, against the available versions.

    enhancement 
    opened by thijsbouwes 0
  • Get readme template from Github

    Get readme template from Github

    The readme template that's copied to the project is currently taken from the templates directory inside Skeletor. Instead we should load the template from our templates git repository > https://github.com/pixelfusion/templates/blob/master/readme-template.md

    enhancement 
    opened by kielabokkie 0
  • Move the user model to a Models folder

    Move the user model to a Models folder

    The following snippet has to be added to the Laravel54Framework.php file:

    $this->projectFilesystem->rename('app/User.php', 'app/Models/User.php');
    

    We also have to do a search and replace to update all mentions of App\User to App\Models\User.

    enhancement help wanted 
    opened by kielabokkie 1
Releases(1.3.4)
Owner
Wouter
Professional surfer (of the digital kind)
Wouter
A skeleton WordPress project to be used as a base for new WordPress projects.

BoxUK WordPress Project Skeleton A base WordPress project from Box UK to get you up and running quickly. Installation Create a new project with compos

Box UK 33 Dec 14, 2022
This repository is pre-configured, clean and empty skeleton for creating a new projects using Kraken Framework.

Kraken Application Skeleton Note: This repository contains pre-configured application skeleton for fast creation of new projects with Kraken Framework

Kraken 79 Aug 6, 2022
🚀 A quickstart generator for Laravel projects

?? Initializer for Laravel Initializer for Laravel takes a visual, approach to setting up a new Laravel project. Fill out the form, choose the compone

Niclas van Eyk 59 Oct 12, 2022
Laravel CRUD Generator This Generator package provides various generators like CRUD, API, Controller, Model, Migration, View for your painless development of your applications.

Laravel CRUD Generator This Generator package provides various generators like CRUD, API, Controller, Model, Migration, View for your painless develop

AppzCoder 1.3k Jan 2, 2023
This is Slim 3 API skeleton project for Composer

Slim 3 API skeleton This is Slim 3 API skeleton project for Composer. Project uses Zend Table Gateway and Phinx for database operations, Monolog for l

Mika Tuupola 304 Dec 28, 2022
CodeIgniter 4-based application skeleton

Bonfire 2 Just getting started. More details at Patreon What is Bonfire? Bonfire will be a robust application skeleton for CodeIgniter 4-based applica

Lonnie Ezell 79 Dec 25, 2022
This is a skeleton to quickly set up a new Slim 4 application.

Slim 4 Skeleton This is a skeleton to quickly set up a new Slim 4 application. Requirements PHP 7.4+ or 8.0+ MySQL 5.7+ or MariaDB Recommended Apache

Daniel Opitz 376 Jan 2, 2023
Slim Framework 4 Skeleton Application

Slim Framework 4 Skeleton Application Use this skeleton application to quickly setup and start working on a new Slim Framework 4 application. This app

Cleonildo Soares Guimaraes Junior 5 Nov 21, 2021
A skeleton for creating applications with CakePHP 4.x.

CakePHP Application Skeleton A skeleton for creating applications with CakePHP 4.x. The framework source code can be found here: cakephp/cakephp. Inst

Fabiano Araujo 1 Oct 13, 2021
Simple skeleton for the PHP Slim framework

Simple skeleton for the PHP Slim framework

Andrew S Erwin 2 Nov 13, 2021
A skeleton for build your Kata with Docker

A skeleton for build your Kata with Docker

Raúl Coloma Bonifacio 1 Nov 12, 2021
Reverse proxy skeleton built for docker with traefik, showcasing a Symfony + React application

Decoupled Backend(Symfony) + Frontend(React ts) built with Traefik & Docker Reverse proxy skeleton built for docker with traefik, showcasing a decoupl

Sergiu 1 Dec 13, 2021
⚡️ This package provides a wonderful PHP skeleton to start building your next package idea.

This package provides a wonderful PHP Skeleton to start building your next package idea. Requires PHP 8.0+ ⚡️ Create your package using Composer: comp

Nuno Maduro 383 Dec 20, 2022
Use this skeleton application to quickly setup and start working on a new Slim Framework 4 application

Slim Framework 4 Skeleton Application Use this skeleton application to quickly setup and start working on a new Slim Framework 4 application. This app

Slim Framework 1.5k Dec 25, 2022
SPA Skeleton with Mithril.js and Slim Framework

A single-page application (SPA) skeleton based on Mithril.js and Slim Framework 4 trying to use good practices

tebe 5 Oct 23, 2022
A skeleton application using the Zend Framework MVC

This is a skeleton application using the Zend Framework MVC layer and module systems. This application is meant to be used as a starting place for those looking to get their feet wet with Zend Framework.

Zend Framework 1.5k Dec 15, 2022
An implementation of Solder in Laravel's Lumen Framework.

LumenSolder What is LumenSolder? An implementation of Solder in Laravel's Lumen Framework. LumenSolder is an application to help compliment and scale

Technic Pack 3 Sep 16, 2020
Rest API boilerplate for Lumen micro-framework.

REST API with Lumen 5.5 A RESTful API boilerplate for Lumen micro-framework. Features included: Users Resource OAuth2 Authentication using Laravel Pas

Hasan Hasibul 484 Sep 16, 2022
Microservice for sending emails with Lumen

Microservice for send email Microservice developed in Lumen for sending emails in real time or by queue. Current Features Send email in real time Send

Rodrigo Lacerda 75 Jan 9, 2023