All Projects → jonathantorres → Construct

jonathantorres / Construct

Licence: mit
A PHP project/micro-package generator for PDS compliant projects or micro-packages.

Projects that are alternatives of or similar to Construct

Proji
A powerful cross-platform CLI project templating tool.
Stars: ✭ 156 (-39.3%)
Mutual labels:  cli, structure, project
Gopherlabs
Go - Beginners | Intermediate | Advanced
Stars: ✭ 205 (-20.23%)
Mutual labels:  cli, structure
Headlesschrome
A Go package for working with headless Chrome. Run interactive JavaScript commands on web pages with Go and Chrome.
Stars: ✭ 112 (-56.42%)
Mutual labels:  cli, package
Pollinate
Template your base files and generate new projects from Git(Hub).
Stars: ✭ 213 (-17.12%)
Mutual labels:  cli, project
Gosearch
🔍 Search the Go packages via command-line
Stars: ✭ 48 (-81.32%)
Mutual labels:  cli, package
Xa
Beautiful & Customizable logger ❤️
Stars: ✭ 78 (-69.65%)
Mutual labels:  cli, package
Npmvet
A simple CLI tool for vetting npm package versions
Stars: ✭ 193 (-24.9%)
Mutual labels:  cli, package
project-structure-sample
Shows how to keep front end and back end separated
Stars: ✭ 91 (-64.59%)
Mutual labels:  structure, project
Forge
F# CLI tool for project, file, and solution management
Stars: ✭ 233 (-9.34%)
Mutual labels:  cli, project
Pkg Ok
👌 Checks paths and scripts defined in package.json before you publish
Stars: ✭ 219 (-14.79%)
Mutual labels:  cli, package
Gub
CLI tool for create an npm package from any repos. 🐳
Stars: ✭ 31 (-87.94%)
Mutual labels:  cli, package
node-js-project-structure
No description or website provided.
Stars: ✭ 21 (-91.83%)
Mutual labels:  structure, project
Typac
install npm packages along with corresponding typings
Stars: ✭ 29 (-88.72%)
Mutual labels:  cli, package
Npm Try
🚆 Quickly try npm packages without writing boilerplate code.
Stars: ✭ 103 (-59.92%)
Mutual labels:  cli, package
Apio
🌱 Open source ecosystem for open FPGA boards
Stars: ✭ 366 (+42.41%)
Mutual labels:  cli, package
Wasm Pack
This tool seeks to be a one-stop shop for building and working with rust- generated WebAssembly that you would like to interop with JavaScript, in the browser or with Node.js. wasm-pack helps you build rust-generated WebAssembly packages that you could publish to the npm registry, or otherwise use alongside any javascript packages in workflows that you already use, such as webpack.
Stars: ✭ 3,848 (+1397.28%)
Mutual labels:  cli, package
Flutter Ui Nice
More than 130+ pages in this beautiful app and more than 45 developers has contributed to it.
Stars: ✭ 3,092 (+1103.11%)
Mutual labels:  project, package
Projeny
A project and package manager for Unity
Stars: ✭ 656 (+155.25%)
Mutual labels:  project, package
Please Upgrade Node
💁 Show a message to your users to upgrade Node instead of a stacktrace
Stars: ✭ 219 (-14.79%)
Mutual labels:  cli, package
Project-Template
A template for modern C++ projects with useful features for developing cross-platform products.
Stars: ✭ 44 (-82.88%)
Mutual labels:  structure, project

Construct

Build Status Build Status Version PDS Skeleton

A PHP project/micro-package generator for PDS compliant projects or micro-packages.

Installation

Construct should be installed globally through composer.

composer global require jonathantorres/construct

Make sure that ~/.composer/vendor/bin is on your $PATH. This way the construct executable can be located.

Assumptions

As Construct utilizes Composer's CLI, it's assumed that Composer is installed. When using the option to initialize an empty Git repo (i.e. --git or -g) it's also assumed that Git is installed.

Usage

Just run construct generate with your vendor/package declaration and it will construct a basic PHP project into the package directory. For example, if you run construct generate jonathantorres/logger it will generate a basic project structure inside the logger folder.

construct generate jonathantorres/logger

The generated project structure will look like the following tree excerpt. Files and directories in parentheses are optional.

├── logger
│   ├── CHANGELOG.md
│   ├── (CONDUCT.md)
│   ├── composer.json
│   ├── composer.lock
│   ├── CONTRIBUTING.md
│   ├── (.appveyor.yml)
│   ├── (.editorconfig)
│   ├── (.env)
│   ├── (.env.example)
│   ├── (.git)
│   │   └── ...
│   ├── .gitattributes
│   ├── (.github)
│   │   ├── CONTRIBUTING.md
│   │   ├── ISSUE_TEMPLATE.md
│   │   └── PULL_REQUEST_TEMPLATE.md
│   ├── .gitignore
│   ├── .gitmessage
│   ├── (.lgtm)
│   ├── (bin)
│   │   └── cli-script
│   ├── LICENSE.md
│   ├── (MAINTAINERS)
│   ├── (.php_cs)
│   ├── (phpunit.xml.dist)
│   ├── README.md
│   ├── (docs)
│   │   └── index.md
│   ├── src
│   │   └── Logger.php
│   ├── tests
│   │   └── LoggerTest.php
│   ├── .travis.yml
│   ├── (Vagrantfile)
│   └── vendor
│           └── ...

This is a good starting point. You can continue your work from there.

Select testing framework

The --test-framework or --test option will allow you to select a testing framework. One of the following is available at the moment: phpunit, phpspec, codeception or behat. phpunit is currently the default.

construct generate jonathantorres/logger --test-framework=codeception

You can also use the short option -t.

construct generate jonathantorres/logger -t codeception

Select license

The --license option will allow you to select a license for the project to construct. One of the following is available at the moment: MIT, Apache-2.0, GPL-2.0 or GPL-3.0. MIT is currently the default.

construct generate jonathantorres/logger --license=Apache-2.0

You can also use the short option -l.

construct generate jonathantorres/logger -l Apache-2.0

Specify a namespace

The --namespace option will allow you to specify a namespace for the project to construct. This is totally optional. By default construct will use the package name as the namespace.

construct generate jonathantorres/logger --namespace=JonathanTorres\\Projects\\Logger

You can also use the short option -s.

construct generate jonathantorres/logger -s JonathanTorres\\Projects\\Logger

Specify a CLI framework

The optional --cli-framework option will allow you to specify a CLI framework for the project to construct, while also creating a bin directory with an initial CLI script in it, adding a bin key in the project's composer.json, and an initial AppVeyor configuration. When the option has been set without a CLI composer package the symfony/console package will be used per default. There's no short option available.

construct generate jonathantorres/logger --cli-framework=zendframework/zend-console

Specify PHP version

The --php option will allow you to specify the minimum required PHP version that your project will support. Construct will use the currently installed version if not specified.

construct generate jonathantorres/logger --php=5.6.31

Specify Composer keywords

The optional --keywords option will allow you to specify a comma separated list of Composer keywords.

construct generate jonathantorres/logger --keywords=log,logging

You can also use the short option -k.

construct generate jonathantorres/logger -k=log,logging

Initialize an empty Git repo?

The --git option will allow you to initialize an empty Git repository inside the constructed project.

construct generate jonathantorres/logger --git

You can also use the short option -g.

construct generate jonathantorres/logger -g

Generate a PHP Coding Standards Fixer configuration?

The --phpcs option will generate a PHP Coding Standards Fixer configuration within the constructed project and add a Travis CI script for validation during builds. The generated .php_cs configuration defaults to the PSR-2 coding style guide.

construct generate jonathantorres/logger --phpcs

You can also use the short option -p.

construct generate jonathantorres/logger -p

Generate a Vagrantfile?

The --vagrant option will generate a basic Vagrantfile within the constructed project, defaulting to the output of a vagrant init call plus a minimal vagrant-cachier plugin configuration. There's no short option available.

construct generate jonathantorres/logger --vagrant

Generate an EditorConfig configuration?

The --editor-config option will generate an EditorConfig configuration within the constructed project.

construct generate jonathantorres/logger --editor-config

You can also use the short option -e.

construct generate jonathantorres/logger -e

Generate .env enviroment files?

The --env option will generate .env environment files within the constructed project for keeping sensitive information out of it. There's no short option available.

construct generate jonathantorres/logger --env

Generate LGTM configuration files?

The --lgtm option will generate LGTM configuration files within the constructed project. There's no short option available.

construct generate jonathantorres/logger --lgtm

Generate common GitHub files?

The --github option will generate common GitHub (i.e. templates and docs) files. There's no short option available.

construct generate jonathantorres/logger --github

Generate GitHub template files?

The --github-templates option will generate GitHub template files within the constructed project into a folder conventionally named .github. It also will move CONTRIBUTING.md into it. There's no short option available, but the option is implicated with the github option.

construct generate jonathantorres/logger --github-templates

Generate GitHub documentation files?

The --github-docs option will generate GitHub documentation files within the constructed project into a folder conventionally named docs. There's no short option available, but the option is implicated with the github option.

construct generate jonathantorres/logger --github-docs

Generate a Code of Conduct?

The --code-of-conduct option will generate a Code of Conduct file named CONDUCT.md within the constructed project and also add a reference to it in the generated README.md. The used Code of Conduct is adapted from the Contributor Covenant, version 1.4. There's no short option available.

construct generate jonathantorres/logger --code-of-conduct

Use a configuration for recurring settings

The --config option allows the usage of a configuration file in the YAML format. There are two ways to provide such a configuration file: One is to provide a specific file as an option argument, the other is to put a .construct configuration file in the home directory of your system. For the structure of a configuration file have a look at the .construct example file. When no configuration keys are provided for settings having a default value (i.e. test-framework, license, php) their default value is used.

construct generate jonathantorres/logger --config /path/to/config.yml

You can also use the short option -c.

construct generate jonathantorres/logger -c /path/to/config.yml

When there's a .construct configuration file in your home directory it will be used per default. If required it's possible to disable the usage via the --ignore-default-config option or the equivalent short option -i.

Interactive Mode

This mode will ask you all the required (and optional) information to generate your project.

construct generate:interactive

Running tests

composer construct:test

License

This library is licensed under the MIT license. Please see LICENSE for more details.

Changelog

Please see CHANGELOG for more details.

Contributing

Please see CONTRIBUTING for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].