承接 mathieutu/php-project-launcher 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mathieutu/php-project-launcher

Composer 安装命令:

composer require mathieutu/php-project-launcher

包简介

A php project launcher with Docker.

README 文档

README

Set a flexible Docker development environment in a second. This package assumes that you have docker installed, and a bash compatible operating system (actually not tested on Windows).

Set your project services

Just once per project, in its root sources folder.

If the services are already set up for your project you can directly jump to "Launch the services" chapter.

📦 Require the package

$ composer require mathieutu/php-project-launcher

If you do not have php and composer on your computer you can directly use the composer docker container:

$ docker run --rm -ti -v $PWD:/app composer require mathieutu/php-project-launcher

Tip: You should commit here! 😇

🐳 Initialize Docker files

$ ./vendor/bin/ppl init {project-name?}

Tip: You can personalize the project name, or leave empty to use the directory name. It will be used to automatically set your domain names: project-name.test and project-name.localhost by default. To use *.test the developer need to edit its hosts or add a dns server, but *.localhost should work out of the box in unix OS

📝 Choose your flavour

Edit the docker-compose.yml, docker/*, and .env files to fit your needs.

A standard Laravel 5 / Symfony 4 application with a PostgreSQL database should work out of the box after updating your .env file.

See the configuration chapter for all the details.

Tip: You also should commit here 😇!

Launch the services

For each developer on its computer, every time s‧he need to launch the project.

🚀 Launch your project

$ ./vendor/bin/ppl up

Tip: A container of jwilder/nginx-proxy will be launched as nginx-proxy if not found and if ther is the standard 'web' container. It will allow you to use several domain names for your projects.

🎉 Make great things

Update your .env file

With the ppl db command you will see all the values that you need for your .env file:

$ ./vendor/bin/ppl db
From the container:
    DB_CONNECTION=pgsql
    DB_HOST=db
    DB_PORT=5432
    DB_USERNAME=root
    DB_PASSWORD=
    DB_DATABASE=local
    DATABASE_URL=postgresql://root:@db:5432/local
...

See your project in the browser

$ ./vendor/bin/ppl open {path?}

Tip: If you do it quickly after up command, you could see a 502 page. Hold tight and refresh after few seconds, it's just the time your server needs to start!

Tip²: You can customize the domain to open with the $PPL_OPEN env variable in web service.

See your database content in a dedicated software

You can see the public port of your database with:

$ ./vendor/bin/ppl db
...
From outside:
    Type: PostgresSQL
    Host: 127.0.0.1
    Port: 32813
    Username: root
    Password: 
    Database: local
    Url: postgresql://root:@127.0.0.1:32813/local

Use your favorite framework cli tool

You can directly access to cli tools with:

$ ./vendor/bin/ppl artisan
$ ./vendor/bin/ppl console

Tip: because we never save too much time, you can directly them with ppla and pplsf aliases.

Example:

ppla migrate
pplsh doctrine:migrations:migrate

And more...

You can see all you can do with:

$ ppl --help

PHP Project Launcher.

Usage:
  ./vendor/bin/ppl [COMMAND] [ARGS...]
  ./vendor/bin/ppl -h | --help

Commands:
  init               Install the docker files to set the services. Can be used with project name in parameter.
  up | u             Run the project services (run the proxy if not already launched).
  down | d           Stop and remove the project services.
  reload | rl        Down and up the project services (with image rebuild).
  open | o           Open project in web browser.
  database | db      Show the env variables and the database connection information.           
  artisan | a        Execute Laravel Artisan in the web service (with access to DB).
  console | sf       Execute Symfony Console in the web service (with access to DB).
  composer | c       Execute Composer in the web service (with proper version of php).
  yarn | y           Execute Yarn in the web service.
  bash | sh          Open a bash console in the web service.
  exec | e           Execute a command in the web service.
  inspect | i        Show the docker configuration for a service.
  logs               View output from services.
  ps                 List services.
  *                  Fallback on docker-compose binary.

Tip: By adding ./vendor/bin/ to your path, you will be able to directly type ppl instead of ./vendor/bin/ppl. And it will be useful for all the composer binaries, like phpunit! For that, you just have to add export PATH=./vendor/bin:$PATH to your .bashrc, or .zshrc file.

Make the configuration all yours

A standard Laravel/Symfony application with a PostgreSQL database should work out of the box, after having configured your .env file.

Uncomment the mysql example in docker-compose.yml if you prefer to use it.

For now, in the original flavour, you can see the documentation pages of:

Customize your URLs

In the docker-compose.yml file, you will be able to customise several env variables in your web service:

  • $VIRTUAL_HOST which is the list of all the domain names that the proxy will redirect to this container.
  • $PPL_OPEN which is the root url that the command ppl open will use.

TO BE CONTINUED...

Contribute to this project

Please feel free encouraged to make Issues and Pull Requests, for new features and bugs fixes as well as documentation.

mathieutu/php-project-launcher 适用场景与选型建议

mathieutu/php-project-launcher 是一款 基于 Shell 开发的 Composer 扩展包,目前已累计 15.34k 次下载、GitHub Stars 达 8, 最近一次更新时间为 2018 年 11 月 29 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 mathieutu/php-project-launcher 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 mathieutu/php-project-launcher 我们能提供哪些服务?
定制开发 / 二次开发

基于 mathieutu/php-project-launcher 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 15.34k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 8
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 8
  • Watchers: 2
  • Forks: 2
  • 开发语言: Shell

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-11-29