darkalchemy / slim-auth
带有认证的Slim 4骨架
Requires
- php: ^8.0
- ext-gettext: *
- ext-intl: *
- ext-json: *
- ext-pdo: *
- cartalyst/sentinel: ^v5.1.0
- darkalchemy/twig-translate: ^0.3.0
- delight-im/i18n: ^v1.1.0
- egulias/email-validator: ^3.1.2
- fullpipe/twig-webpack-extension: ^v4.0.1
- hellogerard/jobby: ^v3.5.0
- illuminate/database: ^v8.9.0
- illuminate/events: ^v8.9.0
- middlewares/trailing-slash: ^v2.0.1
- monolog/monolog: ^2.3.5
- nyholm/psr7: ^1.4.1
- nyholm/psr7-server: ^1.0.2
- odan/session: ^5.1.0
- php-di/slim-bridge: ^3.2.0
- phpmailer/phpmailer: ^v6.5.3
- robmorgan/phinx: ^0.12.10
- selective/config: ^1.1.0
- slim/csrf: ^1.2.1
- slim/flash: ^0.4.0
- slim/slim: ^4.9.0
- slim/twig-view: ^3.3.0
- symfony/http-foundation: ^v6.0.2
- uma/redis-session-handler: ^v0.9.9
- umpirsky/composer-permissions-handler: ^v1.7
- vlucas/valitron: v1.4.10
- zeuxisoo/slim-whoops: ^0.7.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v3.5.0
- overtrue/phplint: ^4.1.0
- phpstan/phpstan: ^1.4.2
- symfony/var-dumper: ^v6.0.2
- dev-master
- 0.4.0
- 0.3.22
- 0.3.21
- 0.3.20
- 0.3.19
- 0.3.18
- 0.3.17
- 0.3.16
- 0.3.15
- 0.3.14
- 0.3.13
- 0.3.12
- 0.3.11
- 0.3.10
- 0.3.9
- 0.3.8
- 0.3.7
- 0.3.6
- 0.3.5
- 0.3.4
- 0.3.3
- 0.3.2
- 0.3.1
- 0.3.0
- 0.2.1
- 0.2.0
- 0.1.3
- 0.1.2
- dev-dependabot/npm_and_yarn/webpack-5.76.0
- dev-dependabot/npm_and_yarn/http-cache-semantics-4.1.1
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-dependabot/npm_and_yarn/json5-and-babel-loader-2.2.3
- dev-dependabot/npm_and_yarn/loader-utils-1.4.2
- dev-dependabot/npm_and_yarn/terser-5.14.2
- dev-l10n_master
This package is auto-updated.
Last update: 2024-05-15 00:14:24 UTC
README
Slim 4骨架。
这是一个简单的骨架,可以快速启动一个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上的视频、Laracasts、Codecourse以及我在许多在线教程和GitHub上的Slim Skeletons中阅读的内容中学到的。
仅列举一些,如Slim4-Skeleton、Slim-Skeleton和Slim4-Starter。
我还有很长的路要走,但我享受这个过程。这不应该用于任何生产网站,因为仍然有很多事情需要修正。