COSCUP 2023
Peter
2023/07/29
Collaborating the PHPBrew : past, now and future
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/9729891/pasted-from-clipboard.png)
Slide
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10645504/pasted-from-clipboard.png)
About me
-
Peter, GitHub
-
Active open source contributor
-
Speaker
-
COSCUP、MOPCON......
-
-
An associate engineer
-
DevOps
-
Back-end
-
System Architecture Researching
-
Web Application Security
-
PHP, Python and JavaScript
-
-
Industrial Technology Research Institute
-
Smart Grid Technology (2017~2021)
-
-
Institute for Information Industry
-
Database, Data platform architecture (2021~)
-
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/9650851/pasted-from-clipboard.png)
Outlines
-
Survey (Have you heard or used PHPBrew?)
-
Short introduction about the PHPBrew
-
The past story of the PHPBrew. (The history of the PHPBrew)
-
Sharing collaborating/contributing stories (tips?)
-
Focusing on us!
-
Summary
Survey
Have you heard or used PHPBrew?
PHPBrew Introduction
Let me tell you a scenario...
Compiling the PHP from source
-
For tests
-
Including extension tests and version tests
-
-
For tests about contributing php-src
Building PHP-7.4 from source
# Example for Ubuntu, Linux distribution
# Install some required C/C++ libraries and C/C++ building tools
sudo apt-get update
sudo apt-get install build-essential
# Building the PHP-7.4 from source
cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
./configure --prefix=/opt/php-7.4 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype \
--enable-mbstring \
--enable-soap \
--enable-calendar \
--with-curl \
--with-zlib \
--enable-gd \
--with-pgsql \
--disable-rpath
......
make -j 4 && make install
There'are many configuring options, right?
curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
chmod +x phpbrew.phar
# Move phpbrew.phar to somewhere can be found by your $PATH
sudo mv phpbrew.phar /usr/local/bin/phpbrew
phpbrew init
# I assume you're using bash
echo "[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc" >> ~/.bashrc
# For the first-time installation, you don't have phpbrew shell function yet.
source ~/.phpbrew/bashrc
# Fetch the release list from official php site...
phpbrew update
# List available releases
phpbrew known
# List available variants
phpbrew variants
# Let's brew something out.
phpbrew --debug install --stdout 7.4 as 7.4-dev +default +intl
Making PHP compiling convenient
The past story of the PHPBrew
PHPConf 2013 Lightning talk - PHPBrew
The past story of the PHPBrew
The PHPBrew father–c9s
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10634887/pasted-from-clipboard.png)
Let me tell the true story
One day...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10634918/pasted-from-clipboard.png)
One day...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10634919/pasted-from-clipboard.png)
In my Twitter profile
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10634923/pasted-from-clipboard.png)
That's the reason why I become a collaborator
你不找別人,別人也會來找你
My collaborating story
Discussion
-
Talking with PHPBrew father in Twitter.
-
Resolving issues.
-
Building/Compiling problems.
-
Usage problems.
-
And so on.
-
-
Update documentations. (GitHub Wiki)
Update documentations
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10636002/pasted-from-clipboard.png)
Update documentations
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10636003/pasted-from-clipboard.png)
Getting some bugs
Does anyone fix it?
No. You only fix it by yourself.
My collaborating story
Resolving issues
-
Legacy codes/projects are everywhere.
-
PHP version compatibility is the challenge.
-
-
Dependencies issues are another challenge
-
"corneltek/pearx": "^1.3.5"
-
"corneltek/curlkit": "^1.0.11"
-
"corneltek/cliframework": "3.0.x-dev#01cee2d491085cfae63c677611b5e4604624771e"
-
corneltek/getoptionkit
-
My collaborating story
Resolving issues..."corneltek/cliframework"
-
Trying to fix some bugs....
-
Dependencies errors are coming...
-
It should fix dependency bug firstly...
-
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10635727/pasted-from-clipboard.png)
PHP version compatibility issues
-
Instant Upgrades
-
PHPUnit, Symfony and other frameworks compatibility
-
-
Automated Refactoring
-
PHP 7.x, PHP 8.x versions upgrading compatibility
-
Rector is the great tool for resolving this issue
My collaborating story
Strange issues & dependencies
Tracing many dependency codes and funny talk...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10635736/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10635737/pasted-from-clipboard.png)
My collaborating story
Strange issues/dependencies
Tracing many dependency codes...corneltek/getoptionkit
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10635733/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10635775/pasted-from-clipboard.png)
My collaborating story
-
Building or Compiling problems are coming...
- They're forwarded to our projects because it's convenient!
-
cannot install gd with php 8.1.12 on ubuntu 18.04
-
OpenSSL symbol(s) not found for architecture x86_64
-
PHP Installation fails on Ubuntu 22.04 WSL2
My collaborating story
Issues are not related to projects
PHP Extension installation issues
Features and Improvements
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10635776/pasted-from-clipboard.png)
Benefits or sense of achievement?
Tracing codes makes your skill powerful
Collaborating with people
Tips?
When you want to contribute...
-
Basic
-
Read documentations.
-
Update documentations.
-
Trying to build, run and test it.
-
Trying to answer questions in issue tracking system.
-
Trying to submit/report issues.
-
-
Advanced
-
Trying to trace codes & find current problems/bugs.
-
Submit pull requests to resolve the issue.
-
Implementing features.
-
Improvements.
-
不要問為何沒有人接手,先承認你就是「沒有人」
The future of the project
-
Short term
-
Support PHP-8.2
-
Optimize PHPBrew Release workflow
-
Update the documentation
-
-
Long term
-
Containerize the PHPBrew
-
Making the PHPBrew building tool environment easy!
-
docker-phpbrew
-
-
Focusing on us!
Stickers are available!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/404993/images/10635754/pasted-from-clipboard.png)
Getting started with using the PHPBrew to manage multiple PHP versions!
Any Questions?
COSCUP 2023
By peter279k
COSCUP 2023
COSCUP 2023, Collaborating the PHPBrew : past, now and future
- 210