codelinered / file-sharing
文件共享 - CodelineRed
Requires
- php: 8.0.*
- doctrine/annotations: ^1.13
- doctrine/orm: ^2.13
- geggleto/psr7-acl: ^1.3
- google/recaptcha: ^1.2
- monolog/monolog: ^1.27
- nochso/html-compress-twig: ^2.0
- paragonie/random_compat: >=1 <9.99
- phpgangsta/googleauthenticator: dev-master
- ramsey/uuid-doctrine: ^1.8
- slim/csrf: ^0.8.3
- slim/flash: ^0.4.0
- slim/slim: ^3.12
- slim/twig-view: ^2.5
- symfony/cache: ^6.0
- symfony/console: ^6.0
Requires (Dev)
- phpunit/phpunit: >=4.8 < 6.0
This package is auto-updated.
Last update: 2024-09-30 02:02:51 UTC
README
这个git是为 fs.codelinered.net 准备的。查看 屏幕截图。
此应用程序基于 Slim Skeleton 和 Gulp Skeleton。
目录
包含
- Slim 3
- Slim Twig View 2
- Slim CSRF 0.8
- Slim Flash 0.4
- Monolog 1
- Doctrine ORM 2
- Geggleto ACL 1
- Google Authenticator
- Google reCAPTCHA 1
- HTML Compress Twig Extension
安装生产版本(推荐)
要求
- PHP 8.0
- MySQL 5.7 (pdo_mysql)
如果您在操作系统上没有git或composer,请下载zip。在您的操作系统上打开控制台,并导航到您的项目文件夹。
+++++ COMPOSER VERSION +++++ $ php composer create-project codelinered/file-sharing file-sharing "dev-production" --no-dev $ cd file-sharing $ php doctrine dbal:run-sql "CREATE DATABASE file_sharing" $ php doctrine orm:schema-tool:update --force $ php doctrine dbal:import sql/all-records.sql
+++++ GIT VERSION +++++ $ git clone https://github.com/CodelineRed/file-sharing.git $ cd file-sharing $ git checkout production $ (optional on unix) rm -rf .git $ (optional on win10) rmdir .git /s $ (optional) cp config\additional-settings.dist.php config\additional-settings.php $ ---- Open "config\additional-settings.php" and change everything you have to change ---- $ php composer insall --no-dev $ php doctrine dbal:run-sql "CREATE DATABASE file_sharing" $ php doctrine orm:schema-tool:update --force $ php doctrine dbal:import sql/all-records.sql
+++++ ZIP VERSION +++++ $ (unix) wget -O fs-prod.zip https://github.com/CodelineRed/file-sharing/archive/production.zip $ (unix) unzip fs-prod.zip $ (win10) curl -L -o fs-prod.zip https://github.com/CodelineRed/file-sharing/archive/production.zip $ (win10) tar -xf fs-prod.zip $ cd file-sharing-production $ (optional) cp config\additional-settings.dist.php config\additional-settings.php $ ---- Open "config\additional-settings.php" and change everything you have to change ---- $ php composer insall --no-dev $ php doctrine dbal:run-sql "CREATE DATABASE file_sharing" $ php doctrine orm:schema-tool:update --force $ php doctrine dbal:import sql/all-records.sql
如果您想使用Docker:点击这里
安装主/开发版本
要求
如果您在操作系统上没有git,请下载zip。在您的操作系统上打开控制台,并导航到您的项目文件夹。
+++++ COMPOSER VERSION +++++ $ php composer create-project codelinered/file-sharing file-sharing $ cd file-sharing $ npm i $ gulp build $ php doctrine dbal:run-sql "CREATE DATABASE file_sharing" $ php doctrine orm:schema-tool:update --force $ php doctrine dbal:import sql/all-records.sql
+++++ GIT VERSION +++++ $ git clone https://github.com/CodelineRed/file-sharing.git $ cd file-sharing $ npm i $ gulp build $ (optional on unix) rm -rf .git $ (optional on win10) rmdir .git /s $ (optional) cp config\additional-settings.dist.php config\additional-settings.php $ ---- Open "config\additional-settings.php" and change everything you have to change ---- $ php composer insall $ php doctrine dbal:run-sql "CREATE DATABASE file_sharing" $ php doctrine orm:schema-tool:update --force $ php doctrine dbal:import sql/all-records.sql
+++++ ZIP VERSION +++++ $ (unix) wget -O fs-main.zip https://github.com/CodelineRed/file-sharing/archive/main.zip $ (unix) unzip fs-main.zip $ (win10) curl -L -o fs-main.zip https://github.com/CodelineRed/file-sharing/archive/main.zip $ (win10) tar -xf fs-main.zip $ cd file-sharing-main $ npm i $ gulp build $ (optional) cp config\additional-settings.dist.php config\additional-settings.php $ ---- Open "config\additional-settings.php" and change everything you have to change ---- $ php composer insall $ php doctrine dbal:run-sql "CREATE DATABASE file_sharing" $ php doctrine orm:schema-tool:update --force $ php doctrine dbal:import sql/all-records.sql
使用Docker安装(可选)
要求
在您的操作系统上打开控制台,并导航到您想安装项目的位置。
$ ---- Unix ---- $ systemctl docker start $ docker run --rm --interactive --tty --volume $PWD:/app composer create-project --ignore-platform-reqs --no-dev codelinered/file-sharing file-sharing "dev-production" $ cd file-sharing $ cp -n config/additional-settings.dist.php config/additional-settings.php $ docker run --rm --interactive --tty --volume $PWD:/app composer update --no-dev $ ---- Windows ---- $ "c:\path\to\Docker Desktop.exe" $ docker run --rm --interactive --tty --volume %cd%:/app composer create-project --ignore-platform-reqs --no-dev codelinered/file-sharing file-sharing "dev-production" $ cd file-sharing $ echo n | copy /-y config\additional-settings.dist.php config\additional-settings.php $ docker run --rm --interactive --tty --volume %cd%:/app composer update --no-dev $ --- All OS ---- $ docker-compose build $ docker-compose up -d
项目命令
gulpfile.json
使用区域代码和通用区域代码生成路径
- 模式1 - example.com/de/ =
'process' => \App\Utility\LanguageUtility::LOCALE_URL | \App\Utility\LanguageUtility::DOMAIN_DISABLED,
- 模式2 - example.de =
'process' => \App\Utility\LanguageUtility::LOCALE_URL | \App\Utility\LanguageUtility::DOMAIN_ENABLED,
- 模式3 - example.com (de-DE session) =
'process' => \App\Utility\LanguageUtility::LOCALE_SESSION | \App\Utility\LanguageUtility::DOMAIN_DISABLED,
(默认)
这取决于您的配置,将返回什么。
如何创建进一步的本地化
- 在文件夹
locale/
中复制一个现有文件(例如,将de-DE.php
复制到fr-FR.php
) - (如果您使用模式1或2)在文件夹
config/routes/
中复制一个现有文件(例如,将de-DE.php
复制到fr-FR.php
) - (如果您使用模式1或2)在
config/routes/fr-FR.php
中将路由前缀从/de/
更改为/fr/
- 您还可以定义路径,例如
/fr-be/
(例如,locale/fr-BE.php
/config/routes/fr-BE.php
) - 如果您想在langswitch中显示语言,请将
fr-FR
和域名添加到locale => active
(config/additional-settings.php
) - (如果您使用模式1或2)在
src/localisation.php
中为fr/
添加情况
如何在不同URL模式之间切换
模式1
示例:example.com/de/
- 默认语言为英语,可选语言为德语
- 前往
locale
,在config/additional-settings.php
- 设置
'process' => \App\Utility\LanguageUtility::LOCALE_URL | \App\Utility\LanguageUtility::DOMAIN_DISABLED,
- 在
config/routes/en-US.php
中设置英文路由,带有或没有/en
前缀 - 在
config/routes/de-DE.php
中设置德文路由,带有/de
前缀 config/routes/xx-XX.php
可以保持不变
模式2
示例:de.example.com 或 example.de
- 默认语言为英语,可选语言为德语
- 前往
locale
,在config/additional-settings.php
- 设置
'process' => \App\Utility\LanguageUtility::LOCALE_URL | \App\Utility\LanguageUtility::DOMAIN_ENABLED,
- 在
active
中输入您的域名 - 前往
config/routes/de-DE.php
- 从每个
route
中移除/de
前缀 - 前往
config/routes/xx-XX.php
- 将配置在
config/routes/en-US.php
和config/routes/de-DE.php
之间相同的路由插入进来 - 在
config/routes/en-US.php
和config/routes/de-DE.php
中移除这些相同的路由
模式 3(默认)
示例:example.com
- 默认语言为英语,可选语言为德语
- 前往
locale
,在config/additional-settings.php
- 设置
'process' => \App\Utility\LanguageUtility::LOCALE_SESSION | \App\Utility\LanguageUtility::DOMAIN_DISABLED,
- 在
config/routes/xx-XX.php
中设置所有路由 config/routes/en-US.php
可以保持不变config/routes/de-DE.php
可以保持不变
ACL设置
使用 Geggleto ACL,路由由当前用户拥有的角色保护。默认情况下,除非您为路由分配角色,否则每个新路由都不可访问。路由在路由文件中定义(例如 config/routes/de-DE.php
)。任何其他资源都在 config/settings.php
中定义。在 Twig 模板内部,您可以使用 ACL 函数 has_role
和 is_allowed。在控制器中,您也可以使用这些 ACL 函数和许多其他功能(例如 isAllowed()
)。
故障排除
在某些情况下,您可能会收到“内部服务器错误”的错误信息。
如果发生这种情况,请前往 public/.htaccess
并启用 RewriteBase /
。
如果项目在子目录中,则 RewriteBase /project/public/
。