// Destroy shuts down and frees any resources related to the PHP engine bindings. func (e *Engine) Destroy() { for _, c := range e.contexts { c.Destroy() } e.contexts = nil if e.engine != nil { C.engine_shutdown(e.engine) e.engine = nil } }
func init() { ptr, err := C.engine_init() if err != nil { panic("PHP engine failed to initialize") } e := &Engine{ engine: ptr, } runtime.SetFinalizer(e, func(e *Engine) { C.engine_shutdown(e.engine) }) engine.Register("php", e, []string{".php"}) }
// Destroy shuts down and frees any resources related to the PHP engine bindings. func (e *Engine) Destroy() { if e.engine == nil { return } for _, r := range e.receivers { r.Destroy() } e.receivers = nil for _, c := range e.contexts { c.Destroy() } e.contexts = nil C.engine_shutdown(e.engine) e.engine = nil }