aimeos / aimeos-symfony2
Requires
- php: ~7.1
- composer-runtime-api: ^2.1
- aimeos/ai-admin-jqadm: 2021.10.*
- aimeos/ai-admin-jsonadm: 2021.10.*
- aimeos/ai-client-html: 2021.10.*
- aimeos/ai-client-jsonapi: 2021.10.*
- aimeos/ai-controller-frontend: 2021.10.*
- aimeos/ai-controller-jobs: 2021.10.*
- aimeos/ai-fosuser: 2021.10.*
- aimeos/ai-gettext: 2021.10.*
- aimeos/ai-monolog: 2021.10.*
- aimeos/ai-swiftmailer: 2021.10.*
- aimeos/ai-symfony: 2021.10.*
- aimeos/ai-twig: 2021.10.*
- aimeos/aimeos-core: 2021.10.*
- doctrine/common: ^2.8||^3.0
- nyholm/psr7: ~1.0
- sensio/framework-extra-bundle: ~3.4||~4.0||~5.0
- symfony/asset: ~3.4||~4.0||~5.0
- symfony/form: ~3.4||~4.0||~5.0
- symfony/framework-bundle: ~3.4||~4.0||~5.0
- symfony/monolog-bundle: ~3.0
- symfony/psr-http-message-bridge: ~1.0
- symfony/security-bundle: ~3.4||~4.0||~5.0
- symfony/swiftmailer-bundle: ~3.0
- symfony/templating: ~3.4||~4.0||~5.0
- symfony/twig-bundle: ~3.4||~4.0||~5.0
Requires (Dev)
- doctrine/doctrine-bundle: ~1.2
- doctrine/orm: ^2.2.3
- php-coveralls/php-coveralls: ~2.0
- phpunit/phpunit: ~7.0||~8.0
- symfony/browser-kit: ~3.4||~4.0||~5.0
- symfony/css-selector: ~3.4||~4.0||~5.0
Conflicts
- symfony/http-foundation: v5.2.0
- dev-master
- 2023.10.x-dev
- 2021.10.x-dev
- 2021.10.1
- 2021.07.x-dev
- 2021.07.1
- 2021.04.x-dev
- 2021.04.3
- 2021.04.2
- 2021.04.1
- 2021.01.x-dev
- 2020.10.x-dev
- 2020.10.5
- 2020.10.4
- 2020.10.3
- 2020.10.2
- 2020.10.1
- 2020.07.x-dev
- 2020.07.2
- 2020.07.1
- 2020.04.x-dev
- 2020.04.3
- 2020.04.2
- 2020.04.1
- 2020.01.x-dev
- 2020.01.1
- 2019.10.x-dev
- 2019.10.5
- 2019.10.4
- 2019.10.3
- 2019.10.2
- 2019.10.1
- 2019.07.x-dev
- 2019.07.3
- 2019.07.2
- 2019.07.1
- 2019.04.x-dev
- 2019.04.2
- 2019.04.1
- 2019.01.x-dev
- 2019.01.1
- 2018.10.x-dev
- 2018.10.2
- 2018.10.1
- 2018.07.x-dev
- 2018.07.1
- 2018.04.x-dev
- 2018.04.2
- 2018.04.1
- 2018.01.x-dev
- 2018.01.2
- 2018.01.1
- 2017.10.x-dev
- 2017.10.3
- 2017.10.2
- 2017.10.1
- 2017.07.x-dev
- 2017.07.3
- 2017.07.2
- 2017.07.1
- 2017.04.x-dev
- 2017.04.3
- 2017.04.2
- 2017.04.1
- 2017.03.x-dev
- 2017.03.1
- 2017.02.x-dev
- 2017.01.x-dev
- 2017.01.1
- 2016.10.x-dev
- 2016.10.5
- 2016.10.4
- 2016.10.3
- 2016.10.2
- 2016.10.1
- 2016.07.x-dev
- 2016.07.1
- 2016.04.x-dev
- 2016.04.3
- 2016.04.2
- 2016.04.1
- 2016.03.x-dev
- 2016.03.3
- 2016.03.2
- 2016.03.1
- 2016.01.x-dev
- 2016.01.3
- 2016.01.2
- 2016.01.1
- 1.2.x-dev
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.x-dev
- 1.1.1
- 1.1.0
- 1.0.x-dev
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dependabot/composer/twig/twig-3.14.0
This package is auto-updated.
Last update: 2024-09-10 08:09:30 UTC
README
Aimeos Symfony包
⭐ 在GitHub上给我们加星标——这会帮到我们!
Aimeos是Symfony的专业、功能全面且超快速电子商务包!您可以在5分钟内将其安装到现有的Symfony应用程序中,并可以根据需求进行适配、扩展、覆盖和自定义。
目录
安装
本文件适用于最新的Aimeos 2023.10和Symfony 6.3+。
如果您想进行主要版本的升级,请参阅升级指南!
Aimeos Symfony电子商务包是基于Composer的库,可以通过使用Composer最简单地安装。如果您没有现有的Symfony应用程序,可以使用以下方式创建一个基本应用程序
composer create-project symfony/website-skeleton:~4.4 myshop
cd myshop
需要将这些设置添加到./config/packages/fos_user.yaml
文件中
fos_user: db_driver: orm user_class: Aimeos\ShopBundle\Entity\FosUser firewall_name: aimeos_myaccount from_email: address: "me@example.com" sender_name: "Test shop" service: mailer: 'fos_user.mailer.noop'
Aimeos组件也必须进行配置,以正确实现身份验证。您需要关注三件事:使用正确的客户管理器实现和密码加密方法以及正确的存储路径。所有这些都必须追加到./config/packages/aimeos_shop.yaml
的末尾
aimeos_shop: resource: fs: baseurl: "https://yourdomain.com/" basedir: "%kernel.project_dir%/public" fs-admin: basedir: "%kernel.project_dir%/public/uploads" mshop: customer: manager: name: FosUser password: name: Bcrypt
要配置Aimeos路由,创建包含以下行的文件./config/routes/aimeos_shop.yaml
aimeos_shop: resource: "@AimeosShopBundle/config/routing.yaml"
同样适用于FosUser包。创建包含以下内容的文件./config/routes/fos_user.yaml
fos_user: resource: "@FOSUserBundle/Resources/config/routing/all.xml"
请确保数据库已设置,并在您的./config/packages/doctrine.yaml
中进行了配置
parameters: env(DATABASE_URL): '' database_host: <your host/ip> database_port: <your port> database_name: <your database> database_user: <db username> database_password: <db password>
此外,您还必须在.env
文件中配置您的数据库凭据
DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name
如果您想使用MySQL以外的数据库服务器,请参阅有关支持的数据库服务器及其特定配置的文章。
如果您不使用Sendmail而是使用SMTP发送电子邮件,则必须修改.env
文件中的MAILER_URL
配置,例如
MAILER_URL=smtp://smtp.mailtrap.io:2525?encryption=tls&auth_mode=login&username=...&password=...
Composer
然后,将这些行添加到您的Symfony项目的composer.json
"prefer-stable": true, "minimum-stability": "dev", "require": { "aimeos/aimeos-symfony": "~2023.10", "friendsofsymfony/user-bundle": "^3.2", ... }, "scripts": { "post-install-cmd": [ "Aimeos\\ShopBundle\\Composer\\ScriptHandler::installBundle", "Aimeos\\ShopBundle\\Composer\\ScriptHandler::setupDatabase", ... ], "post-update-cmd": [ "Aimeos\\ShopBundle\\Composer\\ScriptHandler::installBundle", "Aimeos\\ShopBundle\\Composer\\ScriptHandler::setupDatabase", ... ] }
然后,使用以下命令安装Aimeos商店包
composer update
在生产环境或您不想安装演示数据的情况下,请使用--no-dev选项
SYMFONY_ENV=prod composer update --no-dev
如果您遇到SensioGeneratorBundle
找不到的异常,请按照Aimeos Symfony论坛帖子中描述的步骤操作
在应用程序的基础目录中启动PHP网络服务器以进行快速测试
php -S 127.0.0.1:8000 -t public
然后,您应该能够使用以下方式在浏览器中调用目录列表页面
http://127.0.0.1:8000/shop
登录和管理
设置管理界面是配置Symfony防火墙以限制对管理URL的访问的问题。
安全配置设置是最复杂的一部分。在./config/packages/security.yaml
中的防火墙设置应如下所示
security: providers: aimeos: entity: { class: Aimeos\ShopBundle\Entity\FosUser, property: username } password_hashers: Aimeos\ShopBundle\Entity\FosUser: bcrypt firewalls: aimeos_admin: pattern: ^/admin provider: aimeos form_login: login_path: /admin check_path: /admin_check aimeos_myaccount: pattern: ^/ form_login: provider: aimeos csrf_token_generator: security.csrf.token_manager logout: true access_control: - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/profile, roles: ROLE_USER } - { path: ^/admin/.+, roles: [ROLE_ADMIN, ROLE_SUPER_ADMIN] }
注意:该文件中配置设置的顺序很重要!
这些设置将保护/admin/*
URL免受没有管理员权限的人未经授权的访问。
/profile
URL也由FOS用户包保护,该包还提供用户注册功能。
作为最后一步,您必须使用Symfony命令行创建一个管理员账户
./bin/console aimeos:account --admin me@mydomain.com
电子邮箱地址是登录的用户名,并且该账户也适用于前端。为了保护新账户,该命令将要求您输入密码。相同的命令可以通过使用“--editor”而不是“--admin”来创建有限账户。如果您使用“--super”,则该账户将有权访问所有站点。
如果PHP网络服务器仍在运行(php -S 127.0.0.1:8000 -t public
),您应该能够在浏览器中使用以下方式调用管理员登录页面
http://127.0.0.1:8000/admin
并使用aimeos:account
命令请求的电子邮件地址和密码进行身份验证。
提示
为了简化开发,您应配置不使用内容缓存。您可以通过将这些行添加到./config/packages/aimeos_shop.yaml
来实现
aimeos_shop: madmin: cache: manager: name: None
许可证
Aimeos Symfony包根据MIT许可证的条款进行许可,并且是免费提供的。