mirror of
https://github.com/dunglas/frankenphp.git
synced 2025-12-24 13:38:11 +08:00
* feat: add helpers to create PHP extensions (#1644) * feat: add helpers to create PHP extensions * cs * feat: GoString * test * add test for RegisterExtension * cs * optimize includes * fix * feat(extensions): add the PHP extension generator (#1649) * feat(extensions): add the PHP extension generator * unexport many types * unexport more symbols * cleanup some tests * unexport more symbols * fix * revert types files * revert * add better validation and fix templates * remove GoStringCopy * small fixes --------- Co-authored-by: Kévin Dunglas <kevin@dunglas.fr> * try to fix tests * fix CS * try some workarounds * try some workarounds * ingore TestRegisterExtension * exclude cgo tests in Docker images * fix * workaround... * race detector * simplify tests and code * make linter happy * feat(gofile): use templates to generate the Go file (#1666) --------- Co-authored-by: Alexandre Daubois <2144837+alexandre-daubois@users.noreply.github.com>
33 lines
629 B
Go
33 lines
629 B
Go
package extgen
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
"unicode"
|
|
)
|
|
|
|
func WriteFile(filename, content string) error {
|
|
return os.WriteFile(filename, []byte(content), 0644)
|
|
}
|
|
|
|
func ReadFile(filename string) (string, error) {
|
|
content, err := os.ReadFile(filename)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return string(content), nil
|
|
}
|
|
|
|
// EXPERIMENTAL
|
|
func SanitizePackageName(name string) string {
|
|
sanitized := strings.ReplaceAll(name, "-", "_")
|
|
sanitized = strings.ReplaceAll(sanitized, ".", "_")
|
|
|
|
if len(sanitized) > 0 && !unicode.IsLetter(rune(sanitized[0])) && sanitized[0] != '_' {
|
|
sanitized = "_" + sanitized
|
|
}
|
|
|
|
return sanitized
|
|
}
|