aimeos/aimeos-slim

此包已被废弃且不再维护。没有建议的替代包。

专业的、功能齐全的、超快的 SlimPHP 电子商务包,适用于(经过电视批准的)在线商店


README

Aimeos logo

Aimeos Slim 包

Total Downloads Build Status Coverage Status Scrutinizer Code Quality

⭐ 在 GitHub 上关注我们——这很有帮助!

Aimeos 是 Laravel 的专业、功能齐全且高性能的电子商务包!您可以在5分钟内将其安装到现有的 SlimPHP 应用程序中,并且可以根据您的需求进行适应、扩展、覆盖和定制。

Aimeos SlimPHP demo

目录

安装或更新

本文档适用于 Aimeos SlimPHP 2019.10 版本及更高版本

  • Beta 版本:2020.01
  • LTS 版本:2019.10

本教程假设目录布局与通过

composer create-project slim/slim-skeleton:~3.1 [my-app-name]

创建的 Slim 框架应用程序使用的布局相同。

    "prefer-stable": true,
    "minimum-stability": "dev",
    "require": {
        "aimeos/aimeos-slim": "~2019.10",
        ...
    },

Aimeos 电子商务包是一个基于 Composer 的库,可以通过使用 Composer 最容易地安装。将这些行添加到您的 Slim 项目的 composer.json 文件中

之后,使用

composer update

cp vendor/aimeos/aimeos-slim/src/aimeos-settings.php src/
cp vendor/aimeos/aimeos-slim/src/aimeos-routes.php src/

安装 Aimeos 商店包

'resource' => [
    'db' => [
        'adapter' => 'mysql',
        'host' => 'localhost',
        'port' => '',
        'socket' => '',
        'database' => 'slim',
        'username' => 'root',
        'password' => '',
        'stmt' => ["SET SESSION sort_buffer_size=2097144; SET NAMES 'utf8mb4'; SET SESSION sql_mode='ANSI'"],
        'opt-persistent' => 0,
        'limit' => 3,
        'defaultTableOptions' => [
            'charset' => 'utf8mb4',
            'collate' => 'utf8mb4_bin',
        ],
    ],
],

下一步是将所需的配置和路由文件 复制到您的 src/ 目录中,以便您有一个可以按需修改的副本。当您从旧版本升级时,您应该备份这些文件。然后,您可以将过去所做的更改重新应用到更新后的文件中。

要配置您的数据库,您必须 调整 src/aimeos-settings.php 文件中的配置 并修改资源部分中的设置

如果您没有安装至少 MySQL 5.7,您可能会遇到如下错误

'resource' => [
    'db' => [
        // ...
        'defaultTableOptions' => [
            'charset' => 'utf8',
            'collation' => 'utf8_bin'
        ],
    ],
],

指定的键太长;最大键长度为 767 字节

要绕过此问题,在安装 Aimeos 之前将 src/aimeos-settings.php 中的字符集/校对设置更改到以下值

php vendor/aimeos/aimeos-core/setup.php --config=src/aimeos-settings.php --option=setup/default/demo:1

如果您想使用除 MySQL 之外的其他数据库服务器,请参阅有关 支持数据库服务器 及其特定配置的文章。

通过以下方式在数据库中设置或升级现有表

cp -r vendor/aimeos/aimeos-slim/templates/* templates/

在生产环境或您不想添加演示数据时,请省略 --option=setup/default/demo:1 选项。

mkdir -p public/aimeos/themes/
cp -r vendor/aimeos/aimeos-slim/resources/mimeicons/ public/aimeos/
cp -r ext/ai-client-html/client/html/themes/* public/aimeos/themes/
cp -r ext/ai-admin-jqadm/admin/jqadm/themes/* public/aimeos/themes/

您还必须将 Aimeos 模板 复制到您的 Slim 应用程序的 templates/ 目录中。这样,您就可以根据需要修改它们,并且它们不会被下一个 Composer 更新覆盖。

最后一步是将 Aimeos 主题文件 发布到 public/ 目录,以便通过 HTTP 访问它们。

$app = new \Slim\App($settings);

$aimeos = new \Aimeos\Slim\Bootstrap( $app, require '../src/aimeos-settings.php' );
$aimeos->setup( '../ext' )->routes( '../src/aimeos-routes.php' );

// Set up dependencies

“Aimeos Slim”包使用Twig模板引擎来渲染模板。因此,您需要使用配置好的Twig实例来设置view对象。在您的src/dependencies.php文件末尾复制以下行

// Twig view + Aimeos templates
$container['view'] = function ($c) {
	$conf = ['cache' => '../cache'];
	$view = new \Slim\Views\Twig(__DIR__ . '/../templates', $conf);
	$view->addExtension(new \Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
	return $view;
};

注意:如果您将现有模板重新实现为PHP,也可以使用Slim PHP模板引擎,但Twig有一个主要优势:模板可以从一个公共基模板继承,因此您不需要将整个HTML页面复制到每个模板中。

注意:src/routes.php中,Slim框架的基本应用包含一个/[{name}]路由,您需要首先将其删除。它太通用,会遮盖Aimeos的路由!

然后,您应该能够在浏览器中调用目录列表页面。为了快速入门,您可以使用自PHP 5.4以来可用的集成Web服务器。只需在您的应用程序的根目录中执行以下命令

php -S 127.0.0.1:8000 -t public

使用以下方法将浏览器指向商店的列表页面

自2019年04月起:http://127.0.0.1:8000/shop;至2019年01月:http://127.0.0.1:8000/list

管理界面

Aimeos Slim PHP框架包还包含一个管理界面,用于管理产品和其它内容。如果内部PHP Web服务器(php -S 127.0.0.1:8000 -t public)仍在运行,您可以在以下位置找到它

http://127.0.0.1:8000/admin

注意:使用密码或其它形式的认证来保护管理界面非常重要!

最简单的方法是向所有/admin URL添加HTTP基本认证(浏览器会要求用户名和密码)。在Slim中,有一个中间件可以添加到您的应用程序中。要安装它,在应用程序目录中通过命令行执行以下命令

composer require tuupola/slim-basic-auth

然后,修改您的public/index.php文件,并在$app->run()之前添加以下行

$app->add(new \Tuupola\Middleware\HttpBasicAuthentication([
	"realm" => "Aimeos administration",
	"path" => "/admin",
	"users" => [
		"admin" => "secret",
	],
]));

注意:“users”数组可以包含用户名/密码组合列表,您需要使用一个非常秘密的密码

提示

为了简化开发,您应该配置以使用无内容缓存。您可以在Slim应用程序的src/aimeos-settings.php文件中添加以下行来实现这一点

    'madmin' => array(
        'cache' => array(
            'manager' => array(
                'name' => 'None',
            ),
        ),
    ),

如果启用了缓存,当您更改配置设置等时,必须执行以下命令来清除缓存

php vendor/aimeos/aimeos-slim/cache.php --config=src/aimeos-settings.php

许可证

Aimeos Slim包在LGPLv3许可证的条款下授权,并可免费使用。

链接