【magento2配置专题2】初始化和引导

一、初始化

bootstrapping 概述

运行magento 2, 以下代码在index.php中执行:

  • 引入 /app/bootstrap.php 执行必要的初始化例程,如错误处理,初始化自动加载,设置配置选项,设置默认时区,等等。
  • 创建一个实例 \Magento\Framework\App\Bootstrap.
  • 创建一个Magento 2 的应用实例 (\Magento\Framework\AppInterface).
  • 运行Magento 2

Bootstrap 运行逻辑

bootstrap 安装下面的流程运行 magento2:

  1. 初始化错误处理程序。
  2. 创建对象管理器(/Magento/Framework/ObjectManager)和基本共享服务,这些服务在任何地方都使用,并且受环境的影响。环境参数被正确地注入到这些对象。
  3. 判断mode是否启用
  4. 判断Magento2是否安装
  5. 启动Magento2.

    任何未捕获的异常在应用程序启动后自动传回Magento 2 的 catchException() 方法,catchException方法用来处理异常. 最后返回 true 或者 false:

    • 如果反回 true: Magento处理异常成功。不需要做其他事情.
    • 如果反回 false (或任何其他结果):bootstrap 执行默认异常处理子程序.
  6. 发送应用程序对象提供的响应。

修改 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应用部署多个服务器可以得到优化。

  • 静态文件发布到pub/static 目录
  • 将异常写入日志文件,不显示给用户。
  • 隐藏自定义 X-Magento-* HTTP请求和响应头
Developer(开发模式)

这个 mode 仅用于开发 :

  • 静态文件发布到pub/static 目录
  • 提供详细的 logging
  • 使用 自动代码编译
  • 可以增强调试
  • 显示自定义 X-Magento-* HTTP请求和响应头
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\Firebug
    • csvfile 它使用 Magento\Framework\Profiler\Driver\Standard\Output\Csvfile
    • 其他值使用 Magento\Framework\Profiler\Driver\Standard\Output\Html
  • 2 启用依赖图.

    依赖图通常显示在页面的底部。下图显示输出的一部分 :

你可以以任何的方式设置 MAGE_PROFILER 设置引导参数

你可能感兴趣的:(magento2)