hakuryo/slim-api-template

一个集成了firebase php jwt的SLIM API模板

2.1.0 2023-12-04 10:09 UTC

This package is auto-updated.

Last update: 2024-09-04 11:49:35 UTC


README

此项目是一个SLIM API模板,包含以下composer包:

  • php: >=7.4
  • firebase/php-jwt: ^6.3
  • hakuryo/database-client: ^1.3
  • monolog/monolog: ^3.3.1
  • slim/psr7: ^1.5
  • slim/slim: ^4.9

需求

必须

  • PHP 7.4+
  • PHP模块
    • php-json
    • php-pdo
    • php-mysql

可选

安装

composer create-project hakuryo/slim-api-template [local_path_of_your_project]

配置

此模板由Config类初始化。该类加载INI文件以配置应用程序。

⚠️
默认位置是 __DIR__ . "/config/config.ini"。请注意,这不是生产环境的好位置。你应该将配置文件放在网站根目录之外。

如果你不能将INI文件放在网站根目录之外,请考虑使用ACL(如htaccess)来防止文件被读取。

以下是一个示例配置文件。

# Global APP config sample
[app]
base_path = "/"

# JWT token config sample
[jwt]
key = My_super_private_key; private Key for JWT generation
algorithm = HS256; Algorithm for JWT signature generation
decoded_var_name = decoded_jwt; decoded JWT is stored in $_REQUEST[decoded_var_name]
token_duration = 28800
issuer = my-server.example.com

# hakuryo/ldap-client config sample
[ldap]
HOST = "ldap.example.com"
USER = "uid=my_login,dc=example,dc=com"
DN = "dc=example,dc=com"
PWD = "ldap_pwd"

# hakuryo/database-client config sample for mysql
[db]
HOST = "db.example.com";
DB = "my_db";
USER = "my_user";
PWD = "my_user_pwd"
PORT = 3306
DRIVER = "mysql"

# hakuryo/database-client config sample for oracle
[oci]
HOST = "oracle.example.com";
DB = "my_oracle_db";
USER = "my_user";
PWD = "my_owd";
PORT = 12345
DRIVER = "oci"

[logger]
# Define the type of logger could be ErrorLogHandler,StreamHandler or RotatingFileHandler
logger_class = "RotatingFileHandler"
# Programmatic name of the logger
logger_name = "myLogger"
# Logger level could be one of debug,info,notice,warning,error,critical,emergency
logger_level = "debug"
# Define the Line format in the logger
logger_line_format = "%datetime% %level_name% %message%"
# Absolute path of the Log file.only used when logger_class is StreamHandler or RotatingFileHandler
log_file_path = "/var/log/apache2/my_application.log"
# File name format for RotatingFileHandler class
log_file_name_format = "{date}-{filename}"
# Date format used in log_file_name_format for RotatingFileHandler class
log_file_name_date_format = "Y-m-d"