一、初始化
bootstrapping 概述
运行magento 2, 以下代码在index.php中执行:
- 引入
<magento 2 安装目录>/app/bootstrap.php
执行必要的初始化例程,如错误处理,初始化自动加载,设置配置选项,设置默认时区,等等。 - 创建一个实例 \Magento\Framework\App\Bootstrap.
- 创建一个Magento 2 的应用实例 (\Magento\Framework\AppInterface).
- 运行Magento 2
Bootstrap 运行逻辑
bootstrap 安装下面的流程运行 magento2:
- 初始化错误处理程序。
- 创建对象管理器(/Magento/Framework/ObjectManager)和基本共享服务,这些服务在任何地方都使用,并且受环境的影响。环境参数被正确地注入到这些对象。
- 判断mode是否启用
- 判断Magento2是否安装
-
启动Magento2.
任何未捕获的异常在应用程序启动后自动传回Magento 2 的
catchException()
方法,catchException方法用来处理异常. 最后返回true
或者false
:- 如果反回
true
: Magento处理异常成功。不需要做其他事情. - 如果反回
false
(或任何其他结果):bootstrap 执行默认异常处理子程序.
- 如果反回
- 发送应用程序对象提供的响应。
修改 bootstrap 代码示例:
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';
$params = $_SERVER;
$params[Bootstrap::PARAM_REQUIRE_MAINTENANCE] = true; // default false
$params[Bootstrap::PARAM_REQUIRE_IS_INSTALLED] = false; // default true
$bootstrap = Bootstrap::create(BP, $params);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
二、设置引导参数
设置引导(bootstrap)参数值概述
本主题讨论如何设置Magento 2 Bootstrap参数值。
下表列出了可以设置的引导(bootstrap)参数:
Bootstrap 参数 | 描述 |
---|---|
MAGE_DIRS | 指定自定义目录和URL路径 |
MAGE_PROFILER | 启用 dependency graphs 和 HTML profiling |
- 不是所有的引导参数都记录在这里。
- 可以使用magento deploy:mode:set {mode} 命令对Magento 2 模式(mode)设置 (developer, default, production).
三、关于 Magento 2 模式(modes)
Magento 2 模式介绍
你可以运行Magento下列 modes:
Mode 名称 | 描述 |
---|---|
default(默认) | 不改变magento 2 的任何设置,默认设置对优化不够好。 Magento 2应用部署多个服务器可以得到优化。
|
Developer(开发模式) | 这个 mode 仅用于开发 :
|
Production(运行环境) | 用于部署在生产系统上。异常不显示给用户,异常仅写入日志 |
四、自定义基础目录路径
设置 MAGE_DIRS
Magento/Framework/App/Filesystem/DirectoryList.php中指定一个关联数组,其中键是常量,值是目录或URL路径的绝对路径。
你可以用以下任何一种方式设置 MAGE_DIRS
:
- 设置引导参数
- 使用自定义入口代码:
use Magento\Framework\App\Filesystem\DirectoryList;
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';
$params = $_SERVER;
$params[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS] = [
DirectoryList::CACHE => [DirectoryList::PATH => '/mnt/nfs/cache'],
DirectoryList::MEDIA => [DirectoryList::PATH => '/mnt/nfs/media', DirectoryList::URL_PATH => ''],
];
$params[Bootstrap::INIT_PARAM_FILESYSTEM_DIR_PATHS] = [
DirectoryList::PUB => [DirectoryList::URL_PATH => ''],
DirectoryList::MEDIA => [DirectoryList::URL_PATH => 'media'],
DirectoryList::STATIC_VIEW => [DirectoryList::URL_PATH => 'static'],
DirectoryList::UPLOAD => [DirectoryList::URL_PATH => 'media/upload'],
];
$bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
/** @var \Magento\Framework\App\Http $app */
$app = $bootstrap->createApplication('Magento\Framework\App\Http');
$bootstrap->run($app);
上面的代码分别设置了 [cache]
、 [media]
、 /mnt/nfs/cache
、 /mnt/nfs/media
路径.
五、使用性能 (MAGE_PROFILER)
magento 2 使用性能(MAGE_PROFILER)介绍
-
使用内置分析器(built-in profiler).
你可以使用Magento 2 内置分析器(built-in profiler)来执行任务,如性能分析。分析的本质取决于你使用的分析工具。支持多种格式,包括HTML。)
Magento提供的基础功能 Magento\Framework\Profiler.
设置 MAGE_PROFILER
MAGE_PROFILER
支持以下值:
-
1
启用特定的profiler输出.还可以使用下列方法启用特定的探查器:
firebug
它使用 Magento\Framework\Profiler\Driver\Standard\Output\Firebugcsvfile
它使用 Magento\Framework\Profiler\Driver\Standard\Output\Csvfile- 其他值使用 Magento\Framework\Profiler\Driver\Standard\Output\Html
-
2
启用依赖图.依赖图通常显示在页面的底部。下图显示输出的一部分 :
你可以以任何的方式设置 MAGE_PROFILER
设置引导参数