darkalchemy/slim-auth

此包已被废弃,不再维护。未建议替代包。

带有认证的Slim 4骨架

0.4.0 2022-01-24 18:27 UTC

README

Slim 4骨架。

GitHub commits since tagged version Codacy Badge GitHub Issues GitHub license Total Downloads

这是一个简单的骨架,可以快速启动一个Slim 4项目。

需要PHP 8
需要Composer
需要npm/npx

Slim 4 作为核心框架
nyholm/psr7 用于PSR-7实现
php-di/php-di 用于管理依赖注入
Cartalyst/Sentinel 用于用户认证和授权
delight-im/PHP-I18N 用于处理用户区域设置
hellogerard/jobby 用于通过cron运行所有后台任务
Eloquent/ORM 用于数据库存储
EmailValidator 用于验证电子邮件地址
Middlewares/Trailing-slash 用于移除URL中的尾随斜杠
Monolog 用于日志记录
PHPMailer 用于发送电子邮件
Phinx 用于数据库迁移
Odan/Session 用于管理会话
Slim/CSRF 用于防止csrf攻击
Slim/Flash 用于消息闪存
Slim/Twig/Flash(手动更新和包含)用于在twig中显示消息
Slim/Twig-View 用于模板
Slim/Whoops 用于显示错误
Twig-Translate 用于翻译
umpirsky/composer-permissions-handler 用于设置日志和缓存文件夹的文件夹权限
Vlucas/Valitron 用于验证

使用Composer安装

composer create-project darkalchemy/slim-auth

进入项目目录,根据需要编辑config/settings.php并创建数据库。

cd slim-auth
nano config/settings.php

安装后

composer migrate   # import database

更新以进行开发

composer install           # install non-dev dependencies
npm install                # install dependencies
npm run build-dev          # create initial js/css resources
composer compile           # compile twig templates
composer migrate           # import database

更新以进行生产

composer install --no-dev  # install non-dev dependencies
npm install                # install dependencies
npm run build              # create initial js/css resources
composer compile           # compile twig templates
composer migrate           # import database

设置cron作业,这是在需要时以www-data运行脚本所必需的

sudo crontab -e

## add this to root crontab
* * * * * cd /path/to/bin folder/ && /usr/bin/php jobby.php 1>> /dev/null 2>&1

电子邮件不会直接发送,它们将被插入到数据库中,jobby将负责发送它们。

编译翻译的twig模板

composer compile

将所有PHP文件翻译成区域 - en_US

composer translate en_US

添加额外的区域

## check if locale is installed
locale -a

## find correct local
nano /usr/share/i18n/SUPPORTED

## in order to test the locale switcher, I needed to have another locale translated. I translated
## this using Google Translate, so the translation quality may not be very good. Please consider a
## pull request to improve the quality of the translation.
## add locale if not already installed (fr_FR)
sudo locale-gen fr_FR
sudo locale-gen fr_FR.UTF-8
sudo update-locale

## restart webserver (apache2|nginx)
sudo service nginx restart

## edit bootstrap/container.php and add the correct locale to the 'I18n::class' section
nano bootstrap/container.php

将所有PHP文件翻译成区域 - fr_FR

composer translate fr_FR

然后在poedit中打开locale/**/LC_MESSAGES/messages.po并编辑翻译。

然后为了创建翻译的二进制形式,您需要为每个区域再次运行

composer translate en_EN
composer translate fr_FR

注意事项

如果您想使用redis作为会话处理程序,您应该将其添加到php.ini文件中,并根据需要取消注释,选择TCP或Socket。

; TCP
; session.save_handler = redis
; session.save_path    = "tcp://127.0.0.1:6379?prefix=SlimAuth:&database=1"

; UNIX Socket
; session.save_handler = redis
; session.save_path = "unix:///dev/shm/redis.sock?prefix=SlimAuth:&database=1"

并将其添加到您的redis.ini文件中

redis.session.locking_enabled=1

将这些添加到您的apcu.ini中

apc.enable_cli=1
apc.slam_defense=1

可用的命令行命令

composer cleanup          # runs php_cs_fixer
composer clear_cache      # clears all file based caches
composer compile          # compile all twig templates
composer create-migration # create new migration class
composer migrate          # migrate the database
composer rollback         # rollback all database changes
composer set-perms        # set writable perms for cache/log folders for both webserver and cli
composer translate [lang] # translate all strings for listed language
composer translate-all    # translate all strings for all currently available languages
npm build                 # create minified js/css resources
npm build-dev             # create js/css resources

待办事项

使用phpunit进行测试。

致谢

我在这里所做的大部分事情都是从观看YouTube上的视频、LaracastsCodecourse以及我在许多在线教程和GitHub上的Slim Skeletons中阅读的内容中学到的。
仅列举一些,如Slim4-SkeletonSlim-SkeletonSlim4-Starter

我还有很长的路要走,但我享受这个过程。这不应该用于任何生产网站,因为仍然有很多事情需要修正。