aimeos/aimeos-symfony2

此包已被废弃,不再维护。作者建议使用aimeos/aimeos-symfony包。

专业、功能全面且高性能的Symfony电子商务套件,适用于在线商店和复杂的B2B项目

安装: 716

依赖: 0

建议者: 0

安全: 0

星标: 231

关注者: 17

分支: 52

语言:CSS

类型:symfony-bundle

2021.10.1 2021-10-12 07:08 UTC

README

Aimeos logo

Aimeos Symfony包

Total Downloads Build Status Coverage Status Scrutinizer Code Quality

⭐ 在GitHub上给我们加星标——这会帮到我们!

Aimeos是Symfony的专业、功能全面且超快速电子商务包!您可以在5分钟内将其安装到现有的Symfony应用程序中,并可以根据需求进行适配、扩展、覆盖和自定义。

Aimeos Symfony demo

目录

安装

本文件适用于最新的Aimeos 2023.10Symfony 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许可证的条款进行许可,并且是免费提供的。

链接