A Composer Package which installs the PhantomJS binary (Linux, Windows, Mac) into /bin of your project.

Overview

phantomjs-installer

Latest Stable Version Total Downloads Build Status License

A Composer package which installs the PhantomJS binary (Linux, Windows, Mac) into /bin of your project.

Table of Contents

Installation

To install PhantomJS as a local, per-project dependency to your project, simply add a dependency on jakoch/phantomjs-installer to your project's composer.json file.

{
    "require": {
        "jakoch/phantomjs-installer": "^3"
    },
    "config": {
        "bin-dir": "bin"
    },
    "scripts": {
        "post-install-cmd": [
            "PhantomInstaller\\Installer::installPhantomJS"
        ],
        "post-update-cmd": [
            "PhantomInstaller\\Installer::installPhantomJS"
        ]
    }
}

For a development dependency, change require to require-dev.

The default download source used is: https://bitbucket.org/ariya/phantomjs/downloads/ You might change it by setting a custom CDN URL, which is explained in the section "Downloading from a mirror".

By setting the Composer configuration directive bin-dir, the vendor binaries will be installed into the defined folder. Important! Composer will install the binaries into vendor\bin by default.

The scripts section is necessary, because currently Composer does not pass events to the handler scripts of dependencies. If you leave it away, you might execute the installer manually.

Now, assuming that the scripts section is set up as required, the PhantomJS binary will be installed into the /bin folder and updated alongside the project's Composer dependencies.

How to require specific versions of PhantomJS?

The environment and server variable PHANTOMJS_VERSION enables you specify the version requirement at the time of packaging.

You can also set the phantomjs-version in the extra section of your composer.json:

 "extra": {
   "jakoch/phantomjs-installer": {
     "phantomjs-version": "2.1.1"
   }
 }

The search order for the version is 1) $_ENV, 2) $_SERVER, 3) composer.json (extra section), 4) fallback to v2.1.1 (hardcoded latest version).

How does this work internally?

  1. Fetching the PhantomJS Installer

In your composer.json you require the package "phantomjs-installer". The package is fetched by composer and stored into ./vendor/jakoch/phantomjs-installer. It contains only one file the PhantomInstaller\\Installer.

  1. Platform-specific download of PhantomJS

The PhantomInstaller\\Installer is run as a "post-install-cmd". That's why you need the "scripts" section in your "composer.json". The installer creates a new composer in-memory package "phantomjs", detects your OS and downloads the correct Phantom version to the folder ./vendor/jakoch/phantomjs. All PhantomJS files reside there, especially the examples.

  1. Installation into /bin folder

The binary is then copied from ./vendor/jakoch/phantomjs to your composer configured bin-dir folder.

  1. Generation of PhantomBinary

The installer generates a PHP file PhantomInstaller\\PhantomBinary and inserts the path to the binary.

PhantomBinary

To access the binary and its folder easily, the class PhantomBinary is created automatically during installation.

The class defines the constants BIN and DIR:

  • BIN is the full-path to the PhantomJS binary file, e.g. /your_project/bin/phantomjs
  • DIR is the folder of the binary, e.g. /your_project/bin

Both constants are also accessible via their getter-methods getBin() and getDir().

Usage:

use PhantomInstaller\PhantomBinary;

// get values with class constants

$bin = PhantomInstaller\PhantomBinary::BIN;
$dir = PhantomInstaller\PhantomBinary::DIR;

// get values with static functions

$bin = PhantomInstaller\PhantomBinary::getBin();
$dir = PhantomInstaller\PhantomBinary::getDir();

This feature is similar to location.js of the phantomjs module for Node.

Override platform requirements

The environment and server variables PHANTOMJS_PLATFORM and PHANTOMJS_BITSIZE enable you to override the platform requirements at the time of packaging. This decouples the packaging system from the target system. It allows to package on Linux for MacOSX or on Windows for Linux.

Possible values for

  • PHANTOMJS_PLATFORM are: macosx, windows, linux.
  • PHANTOMJS_BITSIZE are: 32or 64.

Downloading from a mirror

You can override the default download location of the PhantomJS binary file by setting it in one of these locations. Listed in order of precedence (highest first):

  • The environment variable PHANTOMJS_CDNURL
  • The server variable PHANTOMJS_CDNURL
  • In your composer.json by using $['extra']['jakoch/phantomjs-installer']['cdnurl']:
 "extra": {
   "jakoch/phantomjs-installer": {
     "cdnurl": "https://github.com/Medium/phantomjs/releases/download/v1.9.19/"
   }
 },

Default Download Location

The default download location is Bitbucket: https://api.bitbucket.org/2.0/repositories/ariya/phantomjs/downloads/. You don't need to set it explicitly. It's used, when PHANTOMJS_CDNURL is not set.

Mirrors

You might use one of the following mirror URLs as a value for PHANTOMJS_CDNURL:

  • https://cnpmjs.org/downloads/ - USA, San Mateo (47.88.189.193)
  • https://npm.taobao.org/mirrors/phantomjs/ - China, Hangzhou (114.55.80.225)
  • https://github.com/Medium/phantomjs/ - USA, San Francisco (192.30.253.113)

This list of mirrors is not complete. If you know another mirror, please don't hesitate to add it here.

The mirror URLs are also not hardcoded, except for the Github URL. This enables you to point to any PhantomJS mirror or download folder you like. For instance, you could point to the URL of the download folder of your company, where the binaries are stored: PHANTOMJS_CDNURL=https://cdn.company.com/downloads/phantomjs/.

Automatic download retrying with version lowering on 404

In case downloading an archive fails with HttpStatusCode 404 (resource not found), the downloader will automatically lower the version to the next available version and retry. The number of retries is determined by the number of hardcoded PhantomJS versions in getPhantomJSVersions(). This feature was added, because of the problems with v2.0.0 not being available for all platforms (see issue #25).

Comments
  • Failing to install PhantomJS 2.0.0

    Failing to install PhantomJS 2.0.0

    Hi there

    I'm using this package with laravel, deployed via rocketeer. It has worked flawlessly up until PhantomJS was updated to 2.0.0. Now I'm seeing the following errors when composer runs its post-install commands:

    [[email protected]:7987] (production-server) Generating autoload files
    [[email protected]:7987] (production-server) Generating optimized class loader
    [[email protected]:7987] (production-server) Compiling common classes
    [[email protected]:7987] (production-server) Compiling views
    [[email protected]:7987] (production-server) - Installing phantomjs (2.0.0)
    [[email protected]:7987] (production-server) Downloading: connection...
    [[email protected]:7987] (production-server) Script PhantomInstaller\Installer::installPhantomJS handling the post-install-cmd event terminated with an exception
    [[email protected]:7987] (production-server) 
    [[email protected]:7987] (production-server) 
    [[email protected]:7987] (production-server) 
    [[email protected]:7987] (production-server) [Composer\Downloader\TransportException]
    [[email protected]:7987] (production-server) The "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.0.0-linux-x86_64.tar.bz2" file could not be downloaded (HTTP/1.1 404 NOT FOUND)
    

    Please let me know if you need any further information.

    Thanks!

    EDIT: I'm using dev-master, will drop version for now.

    upstream issue 
    opened by opb 16
  • Invalid version string

    Invalid version string "^2.1"

    I'm opening a new issue for the following comment and for bug verification, because i tend to loose track of comments to source code.

    https://github.com/jakoch/phantomjs-installer/commit/74d7516e2676aadf61d20bb4de97323437c1997b#commitcomment-17446718

    Steps to reproduce the problem:

    drAlberT : simply running composer require jakoch/phantomjs-installer will use "^2.1" and rises the error

    • composer require jakoch/phantomjs-installer
      • this uses ^2.1 and resolves to 2.1.1 for me..
      • Note: this doesn't install PhantomJS, because no script triggered!
    "require": {
        "jakoch/phantomjs-installer": "^2.1"
    },
    

    Workaround:

    • please require the exact version manually
    • do not rely on "range"- or "star"-operator based versions (^2.1or 2.1.*, 2.*)
    bug 
    opened by jakoch 14
  • Unable to install

    Unable to install

    Hi,

    Last days, I encountered big troubles to install phantomjs. It looks like the CDN of bitbucket blocked the download and request for an Oauth token, like #34. I tried several options to install it, but all failed.

    At first, I switched to the master branch of the composer package: "jakoch/phantomjs-installer": "dev-master" to be able to change the CDN.

    Setting a bitbucket Oauth token

    I created an Oauth token in my account and used composer config -g bitbucket-oauth.bitbucket.org KEY SECRET to set the Oauth token. Then run, composer -vvv install (actually PHANTOMJS_CDNURL=https://bitbucket.org/ariya/phantomjs/downloads/ composer -vvv install) and got:

    Installing phantomjs (2.1.1) Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 Downloading: 100% Failed to decode response: Failed to decode zlib stream Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 Downloading: 100% Download failed, retrying... Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 Downloading: 100% Download failed, retrying... Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 Downloading: 100% Failed: [Composer\Downloader\TransportException] 0: Failed to decode zlib stream

    It looks like, nothing is downloaded. I tried with curl -L -v https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2 and found that an XML permission message was returned. I tried it three times and finally got the file the third time. However, never get it working at all through composer.

    Using the new default github medium

    Running PHANTOMJS_CDNURL=https://github.com/Medium/phantomjs/ composer -vvv install, lead to the error:

    • Installing phantomjs (2.1.1) Downloading https://github.com/medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2 Downloading: 95% Download failed, retrying... Downloading https://github.com/medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2 Downloading: 95% Download failed, retrying... Downloading https://github.com/medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2 Downloading: 95% Failed: [Composer\Downloader\TransportException] 0: Content-Length mismatch

    It looks like the header reports 23415665 and the strlen composer function 23415536.

    Using the 'official' https://cnpmjs.org/downloads

    Download is extremely slow and leads to the same error as with Github medium (with the exact same filesizes reported ).

    Some informations about my settings:

    • Composer version 1.2-dev (034f1cf591e9061500488a4c354050cf3ea4965f)
    • PHP 7.0.9 (cli) (built: Jul 29 2016 21:02:10) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.9, Copyright (c) 1999-2016, by Zend Technologies
    • Mbstring is loaded but mbstring.func_overload is set to 0

    Note: I finally got it working using bitbucket and removing the oauth, but yesterday it was failing due to the missing Oauth... Crazy...

    Any hints ?

    upstream issue verify bug 
    opened by mickaelperrin 13
  • Bitbucket OAuth required?

    Bitbucket OAuth required?

    After adding this package I noticed that the 2nd installation attempt gives me this:

    > PhantomInstaller\Installer::installPhantomJS
      - Installing phantomjs (2.1.1)
        Downloading: Connecting...
    Could not fetch https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2, please create a bitbucket OAuth token to to go over the API rate limit
    Follow the instructions on https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html
    to create a consumer. It will be stored in "/home/.../.composer/auth.json" for future use by Composer.
    Ensure you enter a "Callback URL" or it will not be possible to create an Access Token (this callback url will not be used by composer)
    Consumer Key (hidden):
    Consumer Secret (hidden):
    Consumer stored successfully.
    

    Is this really required or simply a Bitbucket issue?

    opened by mbrodala 11
  • It does not install the binary

    It does not install the binary

    As you can see my output the composer was not installed:

    kings@kings:~/Projects/reisraff/foo$ composer install -vvv
    Reading ./composer.json
    Loading config file ./composer.json
    Checked CA file /etc/ssl/certs/ca-certificates.crt: valid
    Executing command (/home/kings/Projects/reisraff/foo): git branch --no-color --no-abbrev -v
    Executing command (/home/kings/Projects/reisraff/foo): git describe --exact-match --tags
    Failed to initialize global composer: Composer could not find the config file: /home/kings/.composer/composer.json
    To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
    Running 1.1.0 (2016-05-10 15:21:19) with PHP 7.0.4-7ubuntu2.1 on Linux / 4.4.0-24-generic
    Loading composer repositories with package information
    Downloading https://packagist.org/packages.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/packages.json into cache
    Updating dependencies (including require-dev)
    Downloading http://packagist.org/p/provider-2013%24f09da55dc710abd74ad0045db64a2a2df4bffa89d102127b4f8e2f79e1af8661.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-2013.json into cache
    Downloading http://packagist.org/p/provider-2014%2422279148f4a80f627025c7a2fd0f52191a0925443e69fb682bc2414c9e61257b.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-2014.json into cache
    Downloading http://packagist.org/p/provider-2015%246489bb909fdf75d06b51d2656a00b182660790cda8bc14b0f5ac3a36865917fb.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-2015.json into cache
    Downloading http://packagist.org/p/provider-2015-07%24164cf61b2f07f95dc08273e5aeafda05f5835e73d06d7402a8557c00a424a00d.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-2015-07.json into cache
    Downloading http://packagist.org/p/provider-2015-10%245bcad3fb4c10a2505a6e27a240b3d65dac361a21072e36bda53cd970b157629b.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-2015-10.json into cache
    Downloading http://packagist.org/p/provider-2016-01%240c87a18f950a52cd1223dffd2a485ff7a83eeba784730262db02c168ce4d473f.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-2016-01.json into cache
    Downloading http://packagist.org/p/provider-2016-04%24006cf8ce827bd640690e5732f44d1aff917e147fa0e7c290094b9b63cf150808.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-2016-04.json into cache
    Downloading http://packagist.org/p/provider-archived%243cea9f349cad600253b378e014850f31fe22f02c23ef7c9ba4d40f15eeb3b8f2.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-archived.json into cache
    Downloading http://packagist.org/p/provider-latest%24eecc18098579f4ba81f4a646056677498e6502ca20feef7fd0989d716e351f1f.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/p-provider-latest.json into cache
    Downloading http://packagist.org/p/jakoch/phantomjs-installer%24e4f212eee4a79bf9faf9dc53fe710b0d5e0e308cd039b1b2e7cd74f67f4a13de.json
    Writing /home/kings/.cache/composer/repo/https---packagist.org/provider-jakoch$phantomjs-installer.json into cache
    Resolving dependencies through SAT
    Dependency resolution completed in 0.000 seconds
    Analyzed 61 packages to resolve dependencies
    Analyzed 56 rules to resolve dependencies
      - Installing jakoch/phantomjs-installer (2.1.1)
    Downloading https://api.github.com/repos/jakoch/phantomjs-installer/zipball/b8ee2aac9b95f9a9ee30a05a4df4a0984a8a8b85
        Downloading: 100%         
    Writing /home/kings/.cache/composer/files/jakoch/phantomjs-installer/a900323059d49ea914018da766ce5cd428050362.zip into cache from /home/kings/Projects/reisraff/foo/vendor/jakoch/phantomjs-installer/d377273582743113bcf989653ad1e5c5
        Extracting archive
    Executing command (CWD): unzip '/home/kings/Projects/reisraff/foo/vendor/jakoch/phantomjs-installer/d377273582743113bcf989653ad1e5c5' -d '/home/kings/Projects/reisraff/foo/vendor/composer/51435486' && chmod -R u+w '/home/kings/Projects/reisraff/foo/vendor/composer/51435486'
    
        REASON: Required by the root package: Install command rule (install jakoch/phantomjs-installer 2.1.1)
    
    Reading /home/kings/Projects/reisraff/foo/vendor/composer/installed.json
    Writing lock file
    Generating autoload files
    > post-update-cmd: PhantomInstaller\Installer::installPhantomJS
      - Installing phantomjs (2.1.1)
    Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
        Downloading: 100%         
    Writing /home/kings/.cache/composer/files/phantomjs/0e906a96659c6dc4122a811eaaae9dea430196a4.tar into cache from /home/kings/Projects/reisraff/foo/vendor/jakoch/phantomjs/e8baf26201dc9e579fe0c873db2e6678.bz2
        Extracting archive
      - Installing phantomjs (2.1.1)
    Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
        Downloading: 100%         
    Writing /home/kings/.cache/composer/files/phantomjs/0e906a96659c6dc4122a811eaaae9dea430196a4.tar into cache from /home/kings/Projects/reisraff/foo/vendor/jakoch/phantomjs/70c75e6c34c2bd6a84cf6fdee174254e.bz2
        Extracting archive
      - Installing phantomjs (2.1.1)
    Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
        Downloading: 100%         
    Writing /home/kings/.cache/composer/files/phantomjs/0e906a96659c6dc4122a811eaaae9dea430196a4.tar into cache from /home/kings/Projects/reisraff/foo/vendor/jakoch/phantomjs/e8baf26201dc9e579fe0c873db2e6678.bz2
        Extracting archive
      - Installing phantomjs (2.1.1)
    Downloading https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
        Downloading: 100%         
    Writing /home/kings/.cache/composer/files/phantomjs/0e906a96659c6dc4122a811eaaae9dea430196a4.tar into cache from /home/kings/Projects/reisraff/foo/vendor/jakoch/phantomjs/70c75e6c34c2bd6a84cf6fdee174254e.bz2
        Extracting archive
    kings@kings:~/Projects/reisraff/foo$ ls bin/ -l
    total 0
    kings@kings:~/Projects/reisraff/foo$ ls vendor/ -l
    total 12
    -rw-rw-r-- 1 kings kings  183 Jun 16 18:06 autoload.php
    drwxrwxr-x 2 kings kings 4096 Jun 16 18:09 composer
    drwxrwxr-x 3 kings kings 4096 Jun 16 18:09 jakoch
    
    
    verify bug 
    opened by reisraff 11
  • Stop/kill (and restart?) PhantomJS before updating it

    Stop/kill (and restart?) PhantomJS before updating it

    If you have PhantomJS running in background and you try to update any composer package, the install command will run and fail with a message stating the phantomjs binary is being used.

    Would be nice if:

    • the binary was stopped before the update procedure
      • not sure if it would be possible to start the binary again with the same settings (maybe getting the command that started it? That's viewable on ps aux)
    • OR the script noticed it was running and gave a better warning instead of a copy() error
    opened by igorsantos07 9
  • Tries to install PhantomJS 4 times and then finishes script, without error. But it is not installed.

    Tries to install PhantomJS 4 times and then finishes script, without error. But it is not installed.

    When composer tries to run the installPhantomJS method, it just tries to download phantomjs 4 times unsuccessfully. It does not error. The binary is not installed int he correct location.

    I'm guessing that it just can't save the file for some reason and it's trying over and over again?

    > PhantomInstaller\Installer::installPhantomJS
      - Installing phantomjs (2.1.1)
        Downloading: 100%         
      - Installing phantomjs (2.1.1)
        Downloading: 100%         
      - Installing phantomjs (2.1.1)
        Downloading: 100%         
      - Installing phantomjs (2.1.1)
        Downloading: 100%    
    
    verify bug 
    opened by t202wes 8
  • Alternative approach

    Alternative approach

    I would like to be able to use this package without the extra configuration steps currently required. I think this could be done in the following way:

    1. Install the composer package
    2. The composer package installs a wrapper in the bin directory.
    3. When launched the wrapper downloads (if applicable) the latest phantomjs.
    4. The wrapper launches phantomjs, passing any arguments it received.

    This would allow for simpler usage and faster installation at a slight cost for actual launch.

    enhancement 
    opened by SamMousa 8
  • Latest version of phantomjs not available for OS...

    Latest version of phantomjs not available for OS...

    CentOS release 6.7 (Final) x64

    Logic does a good job of detecting the OS and the most recent stable release of phantomjs. However, there is no stable release at the current version for the OS detected.

     [Composer\Downloader\TransportException]                                                                                                          
      The "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.0.0-linux-x86_64.tar.bz2" file could not be downloaded (HTTP/1.1 404 NOT FOUND)
    

    ...per https://bitbucket.org/ariya/phantomjs/downloads/

    Solution: if the request returns anything other than status 200, tick down one version and try again but no go below the lowest supported version.

    enhancement upstream issue 
    opened by davidjeddy 8
  • Do not try to re-install same PhantomJS version

    Do not try to re-install same PhantomJS version

    I've noticed that, after the first install, the scripts try to install again the same PhantomJS binary every time we mess around with Composer. Would be better if it noticed there was no need to update anything, and skip that procedure.

    enhancement 
    opened by igorsantos07 8
  • Installer fails if phantomjs-installer is depedency of dependency

    Installer fails if phantomjs-installer is depedency of dependency

    I want to use http://jonnnnyw.github.io/php-phantomjs/ which depends on phantomjs-installer 1.9.7. I was getting an error complaining that there's an undefined index -- tracking it down, it turns out it was looking for a version string in composer.json, which obviously wasn't there. It looks like it was later fixed in the as-yet-unreleased https://github.com/jakoch/phantomjs-installer/commit/28f5128bd7e25ab362002eca91c5460f7daf0209.

    So I tried overriding the phantomjs-installer dependency with "jakoch/phantomjs-installer": "dev-master#0fca46f174e48932815ebcc53ba3c70bc2fb1dbc as 1.9.7" (that's the latest commit at the time of writing. I don't like to ever have plain dev-master in my composer.json). This installs the patched version, but installation still fails:

    The "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-dev-master#0fca46f174e48932815ebcc53ba3c70bc2fb1dbc as 1.9.7-macosx.zip" file could not be downloaded (HTTP/1.1 404 NOT FOUND)

    Might I suggest either looking for a regex (eg /^dev-master\b/) in the version string, or completely rethinking the "installer release matches phantomjs release" idea?

    opened by tremby 8
Releases(3.0.1)
Owner
Jens A. Koch
Jens A. Koch
Opinionated version of Wikimedia composer-merge-plugin to work in pair with Bamarni composer-bin-plugin.

Composer Inheritance Plugin Opinionated version of Wikimedia composer-merge-plugin to work in pair with bamarni/composer-bin-plugin. Usage If you are

Théo FIDRY 25 Dec 2, 2022
Get the system resources in PHP, as memory, number of CPU'S, Temperature of CPU or GPU, Operating System, Hard Disk usage, .... Works in Windows & Linux

system-resources. A class to get the hardware resources We can get CPU load, CPU/GPU temperature, free/used memory & Hard disk. Written in PHP It is a

Rafael Martin Soto 10 Oct 15, 2022
PHP shells that work on Linux OS, macOS, and Windows OS.

PHP Reverse Shell Just a little refresh on the popular PHP reverse shell script pentestmonkey/php-reverse-shell. Credits to the original author! Works

Ivan Šincek 294 Jan 5, 2023
Chef-magento - Installs and Configures a Magento project

Description Requirements Chef 0.10.0 or higher required (for Chef environment use). Platform Debian, Ubuntu CentOS, Red Hat, Fedora Your basebox must

Inviqa 3 Jun 30, 2020
A composer plugin, to install differenty types of composer packages in custom directories outside the default composer default installation path which is in the vendor folder.

composer-custom-directory-installer A composer plugin, to install differenty types of composer packages in custom directories outside the default comp

Mina Nabil Sami 136 Dec 30, 2022
Magento-Vagrant-Puppet-Nginx - Installs magento and a nginx server

Magento-Vagrant-Puppet-Nginx Installs Magento MySQL PHP PHP-FPM Nginx n98-magerun Setup git submodule init git submodule update vagrant up Modify pupp

Christian Münch 61 Aug 10, 2022
A script to retrieve data from a Netatmo weather station and display it in a Mac menu bar.

weathermenu A script to retrieve data from a Netatmo weather station and display it in a Mac menu bar. Intended for use with SwiftBar. Configuration N

Dan Moren 4 Nov 4, 2021
This package contains a PHP implementation to solve 3D bin packing problems.

3D Bin Packager This package contains a PHP implementation to solve 3d bin packing problems based on gedex implementation on Go and enzoruiz implement

Farista Latuconsina 7 Nov 21, 2022
Ip2region is a offline IP location library with accuracy rate of 99.9% and 0.0x millseconds searching performance. DB file is ONLY a few megabytes with all IP address stored. binding for Java,PHP,C,Python,Nodejs,Golang,C#,lua. Binary,B-tree,Memory searching algorithm

Ip2region是什么? ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法。 Ip2region特性

Lion 12.6k Dec 30, 2022
Drupal Composer Scaffold - A flexible Composer project scaffold builder

This project provides a composer plugin for placing scaffold files (like index.php, update.php, …) from the drupal/core project into their desired location inside the web root. Only individual files may be scaffolded with this plugin.

Drupal 44 Sep 22, 2022
Set a customer password with bin/magento.

Set a customer password Since Magento 2 no longer provides facilities to set a customers password, this command can come in handy during development w

Vinai Kopp 25 Mar 8, 2022
bin/magento command to display configured preferences for classes or interfaces

bin/magento command to display configured preferences for classes or interfaces A bin/magento command that will show you the configured preferences fo

David Manners 14 Jul 18, 2022
A faster drop in replacement for bin/magento cache:clean with file watcher

"You know, hope is a mistake. If you can't fix what's broken, you'll, uh... you'll go insane." - Max Rockatansky Magento 2 Cache Clean A faster drop i

mage2tv 460 Dec 26, 2022
salah eddine bendyab 18 Aug 17, 2021
Run Telegram PHP Bot on Windows Localhost without Host or VPN.

Run Telegram PHP Bot on Windows Localhost without Host or VPN.

iNeoTeam | آی نئو 4 May 30, 2022
Laravel Valet for Windows.

Windows port of the popular development environment Laravel Valet. Introduction Valet is a Laravel development environment for Windows. No Vagrant, no

Cretu Eusebiu 805 Dec 13, 2022
Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Imposter Plugin Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins. Built with ♥ by Typ

Typist Tech 127 Dec 17, 2022
Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

null 33 Dec 14, 2022