MCPcopy Index your code
hub / github.com/alash3al/phoo

github.com/alash3al/phoo @v3.2.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.2.3 ↗ · + Follow
10 symbols 38 edges 6 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

PHOO

modern php application server, it depends on the bullet-proof php-fpm but it controls how it is being run.

Examples

Imagine you have a php application that uses a modern framework like laravel, Symfony... etc that app contains a public directory, and that public directory contains the main bootstrap file that serves the incoming requests named index.php.

# this is all that you need to serve a laravel application!
$ phoo serve -r ./public
⇨ http server started on [::]:8000

But how about changing the address it is listening on to 0.0.0.0:80?

# no problem
$ phoo serve -r ./public --http 0.0.0.0:80
⇨ http server started on [::]:80

Sometimes I want to add custom php.ini settings, is it easy?

# is this ok for you? ;)
$ phoo serve -r ./public -i display_errors=Off -i another_key=another_value
⇨ http server started on [::]:8000

I have a high traffic web app and I want to increase the number of php workers

# increase the workers' count
$ phoo serve -r ./public --workers=20
⇨ http server started on [::]:8000

Hmmmm, but I want to monitor my app via Prometheus metrics, I don't want to do it manually

# no need to do it yourself, this will enable Prometheus metrics at the specified `/metrics` path
$ phoo serve -r ./public --metrics "/metrics"
⇨ http server started on [::]:8000

Can I choose the php-fpm version / binary path?

# Of course
$ phoo serve -r ./public --fpm "php-fpm8.2"
⇨ http server started on [::]:8000

Wow!, it seems phoo has a lot of simple flags/configs, is it documented anywhere?

Just run phoo serve --help and enjoy it :), you will find that you can also pass flags via ENV vars, and it will automatically read the .env file in the current working directory.

Requirements

  • php-fpm
  • a shell access to run phoo :D

Installation

  • Binary installations could be done via the releases.
  • Docker image is available at ghcr.io/alash3al/phoo
  • you can easily COPY --from=ghcr.io/alash3al/phoo:2.1.8 /usr/bin/phoo /usr/bin/phoo to run it into your own custom image!

TODOs

  • [x] Add .env.example with comments to describe each var.
  • [ ] Add future plans/thoughts.

Core symbols most depended-on inside this repo

Start
called by 3
internals/fpm/fpm.go
execAndWait
called by 1
internals/fpm/fpm.go
servePrometheusMetricsMiddleware
called by 1
cmd/serve/middlewares.go
serveStaticFilesOnlyMiddleware
called by 1
cmd/serve/middlewares.go
serveFastCGIMiddleware
called by 1
cmd/serve/middlewares.go
Before
called by 1
cmd/serve/serve.go
Action
called by 1
cmd/serve/serve.go
DefaultFlags
called by 1
cmd/serve/flags.go

Shape

Function 7
Method 2
Struct 1

Languages

Go100%

Modules by API surface

internals/fpm/fpm.go3 symbols
cmd/serve/middlewares.go3 symbols
cmd/serve/serve.go2 symbols
cmd/serve/flags.go1 symbols
cmd/main.go1 symbols

For agents

$ claude mcp add phoo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact