virtPHP is a tool to create isolated PHP environments.

Overview

virtPHP is a tool for creating and managing multiple isolated PHP environments on a single machine. It's like Python's virtualenv, but for PHP.

virtPHP creates isolated environments so that you may run any number of PHP development projects, all using different versions of PEAR packages and different PECL extensions. You may even specify a different version of PHP, if your system has various installations of PHP.

To install multiple versions of PHP, we suggest taking a look at the phpenv and php-build projects or phpbrew and using virtPHP with them, to manage multiple virtual PHP environments.

*Note: virtPHP is currently only targeted to command line php (php-cli) for nix based systems.

Build Status Coverage Status

Installation

Download the virtphp.phar file from the latest release and place it in /usr/local/bin or wherever it's accessible from your PATH.

Optionally, you may clone this repository and build the phar file yourself.

Usage

virtPHP is a command-line tool. To get started, you'll probably want to check out what it can do. To do this, just execute it without any arguments, like this:

user@host:~$ php virtphp.phar

If you have the phar file set executable (i.e. chmod 755), then you can execute it like this:

user@host:~$ ./virtphp.phar

Or, if it's in your PATH, like this:

user@host:~$ virtphp.phar

We recommend putting it in your PATH and aliasing it to virtphp, so that you can run it like this:

user@host:~$ virtphp

For convenience, the following examples will assume you have simply downloaded virtphp.phar and have not placed it in your PATH or set it executable.

Getting Started

To create a new virtPHP environment, use the create command:

user@host:~$ php virtphp.phar create myenv

By default, this will create a new PHP environment in myenv/, using your system PHP as the base.

After creating the environment, you may activate it so that you now use the new environment in your shell:

user@host:~$ source myenv/bin/activate

After activating your environment, you'll notice that your shell changes to include the name of your virtPHP environment, like this:

(myenv) user@host:~$

And, when you run which php, your shell session reports it is now using PHP from your virtPHP environment:

(myenv) user@host:~$ which php
/home/user/myenv/bin/php

Now, let's install a PECL extension and a PEAR package.

(myenv) user@host:~$ pecl install mongo
(myenv) user@host:~$ pear config-set auto_discover 1
(myenv) user@host:~$ pear install pear.phpunit.de/PHPUnit

(I'm not showing any of the console output here, in case you were wondering.)

What's cool here is that you didn't have to use sudo to install these commands, and if you run pear list -a, you'll see both PHPUnit and pecl/mongo listed as being installed. Now, any project running in the current, activated virtPHP environment can make use of these packages.

To return your environment back to normal settings and discontinue using your virtPHP environment, simply use the deactivate command. It doesn't matter where you are when you run it—it's available to your entire virtPHP environment.

(myenv) user@host:~$  deactivate

Now, depending on your base environment, when you run pear list -a, you won't see the PHPUnit or pecl/mongo packages that you just installed.

To start up your virtPHP environment again, just source the activate script for the virtPHP environment you want to use.

Altogether, that's pretty neat, huh?

So you've setup one or two or even eleven different environments. Keeping track of all of them in your head can lead to cluster headaches, right? So to list out all the environments you have installed, use the show command.

user@host:~$ php virtphp.phar show

This will give you a nice list of all the environments you've created and the path to each.

+--------+--------------------------------------+
| Name   | Path                                 |
+--------+--------------------------------------+
| mytest | /Users/virtPHP/work/project2/virtphp |
| myenv  | /Users/virtPHP/work/project1/virtphp |
+--------+--------------------------------------+

Because virtPHP creates physical folders and files for all of it's work, make sure you use the built in commands for destroying or cloning environments, otherwise things can get messy. However, if an environment does get out of sync you can perform a resync of a particular environment.

user@host:~$ php virtphp.phar show --env=myenv --path=/Users/virtPHP/work/RealProject/virtphp

If you do another show, you will see the updated path in the list of your enviornments.

+--------+-----------------------------------------+
| Name   | Path                                    |
+--------+-----------------------------------------+
| mytest | /Users/virtPHP/work/project2/virtphp    |
| myenv  | /Users/virtPHP/work/RealProject/virtphp |
+--------+-----------------------------------------+

Under the Covers

When you create a new virtPHP environment, it creates a new directory and sets up a virtual environment for PHP within it. For example, the myenv/ environment directory looks something like this:

myenv/
|-- bin/
|   |-- activate
|   |-- composer -> /home/user/myenv/bin/composer.phar*
|   |-- composer.phar*
|   |-- pear*
|   |-- peardev*
|   |-- pecl*
|   |-- php*
|   |-- php-config*
|   |-- phpize -> /usr/bin/phpize*
|   `-- phpunit*
|-- etc/
|   |-- pear.conf
|   `-- php.ini
|-- lib/
|   `-- php/
|       `-- mongo.so
`-- share/
    |-- pear/
    `-- php/

When you activate the environment, the bin/ directory becomes a part of your PATH. When you install a PECL extension, the extension is placed in lib/php/ (as you can see in this example, with mongo.so), and when you install a PEAR package, it is placed in share/php/ (and console commands are placed in bin/, as you can see in this example with phpunit).

To be helpful, we have already installed Composer for you. When you activate a virtPHP environment, then you have access to the composer command.

Advanced Concepts

Let's say you need to use the same host machine to develop multiple projects, all requiring different versions of PHP and different versions of PECL extensions or PEAR packages. virtPHP was made for this!

Specifying a PHP Build for virtPHP

If you have multiple builds of PHP on your system, you can tell virtPHP which one to use, when creating a new environment.

user@host:~$ php virtphp.phar create --php-bin-dir="/home/user/.phpbrew/php/php-5.4.25/bin" project1-env
user@host:~$ php virtphp.phar create --php-bin-dir="/home/user/.phpbrew/php/php5.4.25/bin" project2-env

In this case, we have project1-env and project2-env, both of which use PHP 5.4.25. One of the projects, however uses the older pecl/mongo version 1.2 series, while the other project uses the pecl/mongo 1.4 series. virtPHP makes the use of both extensions possible on the same system. Here's how:

user@host:~$ source project1-env/bin/activate # Activate project1
(project1-env) user@host:~$ pecl install mongo-1.2.12
(project1-env) user@host:~$ deactivate
user@host:~$ source project2-env/bin/activate # Activate project2
(project2-env) user@host:~$ pecl install mongo-1.4.5
(project2-env) user@host:~$ deactivate

Now, we are able to use version 1.2.12 of pecl/mongo, when working on project1-env, and we can use version 1.4.5 of pecl/mongo, when working on project2-env. We just need to activate the environment we are working on first.

In the same way, working with different versions of PHP for other projects is simple. For example, in project3-env, we are using PHP 5.5.

user@host:~$ php virtphp.phar create --php-bin-dir="/home/user/.phpbrew/php/php-5.5.9/bin" project3-env

Using phpbrew to install multiple PHP versions

In the previous examples, we told virtPHP to use a specific build of PHP when creating new environments. To use virtPHP in this way, you'll need to install different builds of PHP. You can download the source, configure it, and build it on your own, or you may use phpbrew to do this for you.

First, install phpbrew on your system, like this (follow any instructions these commands print to the screen):

user@host:~$ curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
user@host:~$ chmod +x phpbrew
user@host:~$ sudo mv phpbrew /usr/bin/phpbrew

Then, you should init a bash script for your shell environment, which will place a bashrc file in the ~/.phpbrew folder.

user@host:~$ phpbrew init

Then source this file to your .bashrc or .zshrc file with this line:

user@host:~$ source ~/.phpbrew/bashrc

Now, we can view and install a few versions of PHP, and control the variants that can be installed with it, with the following commands.

user@host:~$ phpbrew known
Available stable versions:
  5.6 versions:    5.6.0
  5.5 versions:    5.5.16, 5.5.15, 5.5.14, 5.5.13, 5.5.12, 5.5.11, 5.5.10, 5.5.9
  5.4 versions:    5.4.32, 5.4.31, 5.4.30, 5.4.29, 5.4.28, 5.4.27, 5.4.26, 5.4.25
  5.3 versions:    5.3.28, 5.3.27, 5.3.26, 5.3.25, 5.3.24, 5.3.23, 5.3.22, 5.3.21

user@host:~$ phpbrew install 5.6.0 +default+debug+mysql

This may take a while, so grab a few cups of coffee. phpbrew command shown with the default, debug, and mysql variants included.

Variants can be installed individually, or in 'virtual variants'

user@host:~$ phpbrew variants
Variants:
  all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, dba, debug, dom, embed,
  exif, fileinfo, filter, fpm, ftp, gcov, gd, gettext, hash, iconv, icu,
  imap, intl, ipc, ipv6, json, kerberos, mbregex, mbstring, mcrypt, mhash,
  mysql, openssl, pcntl, pcre, pdo, pgsql, phar, posix, readline, session,
  soap, sockets, sqlite, tidy, tokenizer, xml_all, xmlrpc, zip, zlib


Virtual variants:
  dbs:      sqlite, mysql, pgsql, pdo
  mb:       mbstring, mbregex
  neutral:
  default:  filter, dom, bcmath, ctype, mhash, fileinfo, pdo, posix, ipc,
            pcntl, bz2, zip, cli, json, mbstring, mbregex, calendar, sockets, readline,
            xml_all

After installing the spcified version of phpbrew, we can activate a specific version like this:

user@host:~$ phpbrew use php-5.6.0

...switch between different versions:

user@host:~$ phpbrew switch php-5.5.16

...or, return to the system version:

user@host:~$ phpbrew off

So, why would we need virtPHP, if we can do this? virtPHP goes beyond phpbrew.

With virtPHP, you may install different PECL extensions, different PEAR packages, and manage separate php.ini configs for the same version and build of PHP. This way, projects you are developing that share the same PHP version but different configuration may be developed on the same system using different virtual PHP environments. virtPHP can work together with phpbrew to achieve this.

Known Issues

  • .pearrc not found issue If you get an error stating the script couldn't access the .pearrc file (or can't find it), you can either try changing the permissions on your [USER_DIR]/.pearrc file or remove it entirely. This issue seems to occur sporadically.

Contributing

If you would like to help, take a look at the list of issues. Fork the project, create a feature branch, and send us a pull request.

To ensure a consistent code base, you should make sure the code follows the coding standards, which we borrowed from Symfony.

Running the Tests

You may use the provided Vagrantfile to start up a VM and run tests in a clean environment. You will need VirtualBox and Vagrant installed on your system.

user@host:~$ cd virtphp/
user@host:~$ vagrant up
user@host:~$ vagrant ssh
user@host:~$ cd /vagrant
user@host:~$ curl -sS https://getcomposer.org/installer | php
user@host:~$ php composer.phar install
user@host:~$ ./vendor/bin/phpunit

Building the Phar File

virtPHP is distributed as an executable phar file. The bin/compile script handles building this file. To build the phar file, change to the location of your virtPHP project clone and execute the compile script like this:

user@host:~$ ./bin/compile

This should build a file named virtphp.phar in your current directory. You may move this file to wherever you like and use it for creating virtPHP environments.

Requirements

PHP 5.3.3 or above.

License

Copyright (c) 2013-2014 Jordan Kasper, Ben Ramsey, Jacques Woodcock

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • Include php-fpm binary

    Include php-fpm binary

    If PHP has been compiled with FPM, it would be nice to include the binary in the bin directory of the virtphp env, with the corresponding php-fpm.conf in the etc directory.

    enhancement 
    opened by chadrien 18
  • Fix for Pearrc on OSX

    Fix for Pearrc on OSX

    This pull request fixes issues reported on these tickets:

    https://github.com/virtphp/virtphp/issues/10 https://github.com/virtphp/virtphp/issues/28

    The issue is that when there was an existing .pearrc on OSX pear phar installation would fail, creating what looked like an empty /share/php folder which should have all of Pear folders.

    The solution is to move the .pearrc file during Pear's installation and then moving it back when done.

    This has been tested on OSX and Linux.

    opened by jwoodcock 16
  • Activate Command

    Activate Command

    Here is the activate command that when used:

    virtphp activate {envName}
    

    will pull the source path and try to copy to machine clipboard, OSX and Linux, and output the source path just in case the user did not have a compatible clipboard so they can copy and paste it in.

    Full test coverage as well.

    opened by jwoodcock 15
  • Set $COMPOSER_HOME into the virtphp env path

    Set $COMPOSER_HOME into the virtphp env path

    Setting $COMPOSER_HOME to $VIRTPHP_ENV_PATH/.composer, it would make all composer global xxx be executed in the virtphp env path, instead of user's $HOME.

    opened by chadrien 15
  • Functionality for show command

    Functionality for show command

    This PR holds new worker for handling the show functionality with tests which looks/writes to a file at the ~/{user directory}/.virtphp/environments.json.

    It also updates create, clone and destroy to insure the environments.json file is kept in sync depending on which action the user takes.

    Test are included and have been updated to cover the new functionality.

    opened by jwoodcock 13
  • Call to undefined function Virtphp\Util\json_decode()

    Call to undefined function Virtphp\Util\json_decode()

    As a new user to PHP, I installed the .51 alpha to create a new environment in my home folder. The virtphp.phar file has been given executable power within /usr/local/bin and runs.

    I attempted to run virtphp.phar create hanker but rec'd the following error:

    Fatal error: Call to undefined function Virtphp\Util\json_decode() in phar:///usr/local/bin/virtphp.phar/src/Virtphp/Util/EnvironmentFile.php on line 43

    Looking at this file it appears some environment vars should have been set up when this instance was created? I'm sure it's my ignorance but I didn't see this in the open/closed issues? What am I overlooking? thx, sam

    opened by sam452 12
  • Pear issue on Create

    Pear issue on Create

    When I run create, everything runs fine until it gets to pear and I get this error: [Symfony\Component\Filesystem\Exception\IOException] Cannot rename "/Users/Kite/work/virtphp/newenv/bin/pear" to "/Users/Kite/work/virtphp/newenv/bin/pear.pear".

    The status messages I get before this are:

    Checking current environment Creating directory structure Creating VirtPHP version file Creating custom php.ini Wrapping PHP binary Copying other libraries Downloading pear phar file, this could take a while... Installing PEAR

    This is the same issue Phil Sturgeon reported getting.

    Now, this is from within the project and not from a phar file.

    bug 
    opened by jwoodcock 9
  • Pear Logging

    Pear Logging

    Added functionality that will check for and if not there create a log folder in the ~/.virtphp/ folder and then dump the pear install results into a file called pear_log.txt within the folder.

    This is to help us debug the OSX issues people are experiencing which is hard to recreate and pinpoint. I suggest we merge this and increment to 0.5.1.

    opened by jwoodcock 8
  • Bug fix in environment remove from list.

    Bug fix in environment remove from list.

    When a user was tab-completing path to environment to remove, it was not being removed from the show list due to the trailing slash. This update fixes that and adds a bit more reporting on if the environment was removed from list or not.

    opened by jwoodcock 6
  • .virtPHP/ core structure rework (attempt 2)

    .virtPHP/ core structure rework (attempt 2)

    As explained in the email I sent on 4/15/14, listed below, I've reworked how we are creating environments to set the default location to be inside the .virtphp/envs/ folder now.

    Also, I've added a number of tests to bring us back up to decent code coverage, not 100%.

    The one thing I could not get done as of yet, is the virtphp activate {env name} command. Though I think we are close to getting this worked out.

    The big work is the creation of the EnvironmentFile object to handle all communication to and from the environments.json.

    EMAIL-------------------------------------------------------- However, because we do not want them adding this folder to their projects, we're moving to do an install script, and virtphp are not project specific, I propose we create all env folders in the ~/.virtphp folder.

    This will help keep peoples systems cleaner and can allow us to put an activate command into the virtphp application that simply activates environments.

    Something like: virtphp activate {env name}

    We should also make environment name unique for a number of reasons.

    I'll be happy to tackle all this work for v1 if approved.

    opened by jwoodcock 5
  • create command fails - timeout

    create command fails - timeout

    Because my home is rather big, creating a new environment fails:

    Symfony\Component\Process\Exception\ProcessTimedOutException
    The process "find ~/ -name ".pearrc"" exceeded the timeout of 60 seconds.
    

    What is the purpose of searching the whole home directory recursively for this rc file? Wouldn't it be enough to check if it exists within the home directory itself? - If this is the case maybe the following could be a replacement to "find":

    $process = $this->getProcess("ls \"~/.pearrc\"");
    $process->run();
    if ($process->isSuccessful()) { ... }
    

    Because "ls" prints in any case something to stdout, we have to look at the return value. "ls" returns 0 if the file is found (otherwise something else). Or, to completely get rid of system dependent processes, one could use the filesystem api provided by symfony.

    bug 
    opened by elexx 5
  • Should we archive this project?

    Should we archive this project?

    We're obviously not maintaining it actively... should we let other people know by marking it as "archived" in GitHub? People could still fork it and continue on if they want...

    opened by jakerella 1
  • Add support for extensions not hosted by PECL, such as Phalcon

    Add support for extensions not hosted by PECL, such as Phalcon

    As you may know, Phalcon isn't hosted by PECL, so I can't use pecl install after setting up a new virtual environment. On the other hand, PHPBrew provides an easy way to install these kind of extensions:

    $ phpbrew ext install https://github.com/phalcon/cphalcon
    

    But if I do this, the new extension isn't seen by my virtual environment, because it's installed inside the PHPBrew directory tree (and shims), not inside the VirtPHP ones.

    Now, I obviously could install Phalcon globally, and only after that create a new virtual environment, copying the current setup (extensions included), but this kind of defeats the purpose of a tool like VirtPHP: it would be better if I could install Phalcon only on those projects that actually use that framework (and without much hassle, I mean).

    So, is it possible to add a functionality like the one available in PHPBrew, to install extensions not belonging to PECL?

    Thank you very much!

    opened by michelezamuner 3
  • timezone settings on compile process

    timezone settings on compile process

    i was trying to build the project but i got this

    Failed to compile phar: [Exception] DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. at /path/to/cloned/repos/virtphp/src/Virtphp/Compiler.php:58%
    

    the output of the $process->getOutput(); is 2015-05-07 08:29:54 -0300

    opened by ramonmoraes8080 0
  • composer based env

    composer based env

    Afaik the composer library/module is for php what pip is for python? If it is there is just one problem: composer keeps binaries on an exclusive bin folder.

    So i kinda think: maybe my problem is to get a virtualenv for composer itself and not php at all, because the bin from composer are not linked over the bin folder from the virtphp which is the "goal" (for me) to use env.

    I think it could be a nice catch to set the VIRTPHP_ENV_PATH with the composer/bin path on the activate file.

    VIRTPHP_ENV_PATH="/Users/guest/folder/to/php_project/env"
    VIRTPHP_ENV_PATH=":"$VIRTPHP_ENV_PATH"/composer/vendor/bin"
    
    • update

    i've tried to manipulate the (environment variables)[https://getcomposer.org/doc/03-cli.md#composer-bin-dir] but notthing changed at the installation level. the only progress was to set the VIRTPHP_ENV_PATH to cover the original vendo folder.

    opened by ramonmoraes8080 0
  • create env with hidden folder

    create env with hidden folder

    why is not possible to create env folder like: virtphp create .env. It's really helpful because it automatically fits under the default .gitignore configuration to dot folders. :)

    update

    why the default --install-path is to a folder at the user's home? i think it's more useful to make it use the current path.

    opened by ramonmoraes8080 2
Releases(v0.5.2-alpha)
  • v0.5.2-alpha(Jan 18, 2015)

    0.5.2-alpha (2015-1-18)

    Introduced the activate command which returns the source command to copy in order to activate an env, and if the system has a supported clipboard, copies the command to said clipboard

    Usage: virtphp activate {env_name}

    Source code(tar.gz)
    Source code(zip)
    virtphp.phar(367.06 KB)
  • v0.5.1-alpha(Aug 13, 2014)

  • v0.5.0-alpha(Jun 6, 2014)

  • v0.4.0-alpha(May 14, 2014)

    • Changed the default behavior of the create command to create all new virtPHP environments in ~/.virtphp/envs/; this may be overridden with the --install-path option
    • Added ability to delete a virtPHP environment by name with delete envname
    • Fixed issue in which we failed to remove an environment from the environments list
    • Updated all code in the project to conform to PSR-2 standard
    • Various improvements to tests and raised level of code coverage
    • Various bug fixes and docs improvements
    Source code(tar.gz)
    Source code(zip)
    virtphp.phar(351.16 KB)
  • v0.3.0-alpha(Mar 25, 2014)

    • Added show command to show all environments created with virtphp
    • Updated create, clone, and destroy commands to write to ~/.virtphp/environments.json when creating or destroying virtphp environments
    • Improved searching for a local ~/.pearrc config file (fixes #25)
    • Various bug fixes and docs improvements
    Source code(tar.gz)
    Source code(zip)
    virtphp.phar(345.63 KB)
  • v0.2.0-alpha(Mar 7, 2014)

    • Added checks to the activate script to detect whether another virtphp or virtualenv environment is running; one must deactivate virtualenv environments before they can activate a virtphp env. Switching virtphp env is allowed.
    • Added Travis CI and Coveralls.io configuration to run tests and generate coverage reports
    • Changed to use PSR-4 autoloading
    • Typo fixes and documentation updates
    Source code(tar.gz)
    Source code(zip)
    virtphp.phar(338.60 KB)
  • v0.1.0-alpha(Mar 4, 2014)

Simple PHP version management

phpenv - PHP multi-version installation and management for humans. Key features: My name is phpenv. I was designed for humans, to help simplify the ma

php multiple release management 4 humans 1.3k Dec 30, 2022
Builds PHP so that multiple versions can be used side by side.

php-build php-build is a utility for building versions of PHP to use them side by side with each other. The overall structure is loosly borrowed from

php-build 959 Dec 14, 2022
Thin Wrapper around rbenv for PHP version managment

phpenv ![Gitter](https://badges.gitter.im/Join Chat.svg) Sets up a separate rbenv environment for PHP man page SYNOPSIS phpenv-install.sh UPDATE=yes p

Christoph Hochstrasser 571 Dec 29, 2022
đź”° Instant PHP quality checks from your console

PHP Insights was carefully crafted to simplify the analysis of your code directly from your terminal, and is the perfect starting point to analyze the code quality of your PHP projects.

Nuno Maduro 4.8k Dec 27, 2022
Simple, fast, isolated way to download+assimilate ZIP/TAR files

Composer Downloads Plugin The "Downloads" plugin allows you to download extra files (*.zip or *.tar.gz) and extract them within your package. This is

CiviCRM 6 Nov 19, 2022
Create and update progress bars in different environments

Create and update progress bars in different environments

Laminas Project 8 Jul 28, 2022
Vagrant is a tool for building and distributing development environments.

Vagrant Website: https://www.vagrantup.com/ Source: https://github.com/hashicorp/vagrant HashiCorp Discuss: https://discuss.hashicorp.com/c/vagrant/24

HashiCorp 24.8k Jan 2, 2023
Sspak - Tool for managing bundles of db/assets from SilverStripe environments

SSPak SSPak is a SilverStripe tool for managing database and assets content, for back-up, restoration, or transfer between environments. The file form

Silverstripe CMS 45 Dec 14, 2022
Phansible - generate Vagrant + Ansible dev environments for PHP

Phansible Phansible is a simple generator for Vagrant projects, targeting PHP development environments, using Ansible as Provisioner. It was inspired

phansible 639 Nov 1, 2022
Up and running with small Docker environments

Vessel Up and running with small Docker dev environments. Documentation Full documentation can be found at https://vessel.shippingdocker.com. Install

Shipping Docker 1.1k Dec 17, 2022
Envbar allows you to differentiate between environments by adding a custom colored bar above the top navigation.

Envbar Envbar allows you to differentiate between environments by adding a custom colored bar above the top navigation. This should help backend users

Magenizr 6 Oct 7, 2022
Instantly login as user via a single button tap on dev environments.

Getting tired of always entering login details in local dev environments? This package adds a button to instantly login a user! Installation You can i

Quinten Buis 3 Feb 18, 2022
A minimal package that helps you login with any password on local environments

Laravel Anypass Built with ❤️ for every "lazy" laravel developer ;) It is always painful to remember and type in the correct password in the login for

Iman 208 Jan 1, 2023
Warden is a CLI utility for orchestrating Docker based developer environments

Warden Warden is a CLI utility for orchestrating Docker based developer environments, and enables multiple local environments to run simultaneously wi

David Alger 314 Dec 2, 2022
SlimJim was born out of a need for a simple auto update script which would update multiple development/test environments every time someone

SlimJim WHY? SlimJim was born out of a need for a simple auto update script which would update multiple development/test environments every time someo

Jesal Gadhia 100 Apr 22, 2022
Create videos programmatically in the cloud from PHP: add watermarks, resize videos, create slideshows, add soundtrack, voice-over with text-to-speech (TTS), text animations.

Create videos programmatically in the cloud from PHP: add watermarks, resize videos, create slideshows, add soundtrack, voice-over with text-to-speech (TTS), text animations.

null 6 Oct 21, 2022
Create a PHP 8 CRUD (Create, Read, Update, Delete) RESTful API with an MySQL database.

Créer une API RESTful PHP 8 CRUD (Create, Read, Update , Delete) simple avec MySQL et PDO (PHP Data Objects) Détails du référentiel : Lire, insérer, m

HOUESSOU BĂ©ryl 5 Oct 10, 2022
A tool to create php lambda's in AWS via custom runtime api

Getting Started This composer library assists in the creation, configuration, and testing of an AWS Lambda function. It utilizes the AWS Lambda custom

Mike McGrath 0 Jul 13, 2022
Daux.io is an documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It helps you create great looking documentation in a developer friendly way.

Daux.io - Deprecation Notice This repository is deprecated! Daux.io has been moved to an organization, to guarantee future development and support. So

Justin Walsh 4.6k Dec 16, 2022
Daux.io is an documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It helps you create great looking documentation in a developer friendly way.

Daux.io Daux.io is a documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It help

Daux.io 719 Jan 1, 2023