frankenphp/options.go

50 lines
946 B
Go
Raw Normal View History

package frankenphp
2022-10-04 15:42:45 +00:00
import (
"go.uber.org/zap"
)
// Option instances allow to configure FrankenPHP.
type Option func(h *opt) error
// opt contains the available options.
//
// If you change this, also update the Caddy module and the documentation.
type opt struct {
numThreads int
workers []workerOpt
2022-10-04 15:42:45 +00:00
logger *zap.Logger
}
type workerOpt struct {
fileName string
num int
}
// WithNumThreads configures the number of PHP threads to start.
func WithNumThreads(numThreads int) Option {
return func(o *opt) error {
2022-10-12 07:38:45 +00:00
o.numThreads = numThreads
return nil
}
}
// WithWorkers configures the PHP workers to start.
func WithWorkers(fileName string, num int) Option {
return func(o *opt) error {
o.workers = append(o.workers, workerOpt{fileName, num})
return nil
}
}
2022-10-04 15:42:45 +00:00
// WithLogger configures the global logger to use.
2022-10-04 15:42:45 +00:00
func WithLogger(l *zap.Logger) Option {
return func(o *opt) error {
o.logger = l
return nil
}
}