使用Composer在OpenCart中集成外部库

如今,几乎每个框架都内置了对Composer的内置支持,Composer是PHP中一个很棒的依赖管理工具,OpenCart也不例外。 在本教程中,您将学习如何使用Composer在OpenCart中集成外部库。

作曲家在OpenCart中的作用

自从OpenCart 2.2引入以来,就支持基于Composer的工作流程。 因此,继续获取最新版本的OpenCart; 在撰写本文时,它是2.3.0.2。 确保安装并配置已下载的最新版本,因为这将在本文后面提供。

探索目录结构,您会发现与早期版本的OpenCart相比存在某些差异。 在本文的上下文中,有趣的候选对象是composer.json文件和vendor目录。

让我们快速浏览一下composer.json文件。

{
    "name": "opencart/opencart",
    "type": "project",
    "description": "OpenCart",
    "keywords": ["opencart", "ecommerce", "framework", "opensource"],
    "homepage": "http://www.opencart.com",
    "license": "GPL-3.0+",
    "require": {
        "cardinity/cardinity-sdk-php": "^1.0",
        "braintree/braintree_php" : "3.2.0",
        "leafo/scssphp": "0.0.12",
        "divido/divido-php": ">=1.1.1",
        "klarna/kco_rest": "^2.2",
        "php": ">=5.4.0"
    }
}

尽管对Composer语法的讨论不在本文的讨论范围之内,但让我们快速浏览一下它以通俗易懂的方式讲的内容。

首先,OpenCart项目本身现在可以作为库使用,因此您可以使用Composer本身进行安装,而无需从站点手动下载。 此外,它还需要其他第三方库才能正常工作,例如divido,leafo等。当然,您不必担心它,因为在运行相关的Composer命令时它将自动处理。

当您安装新库时,相关条目将添加到composer.json文件中。 相关库文件位于同一级别的供应商目录下。 只需浏览该目录,您应该会看到已经安装了库!

供应商目录还包含由Composer本身生成的autoload.php ,可确保库已自动加载到OpenCart中,因此您可以立即使用它。 当然,在引导项目时,OpenCart包含autoload.php

因此,快速介绍了Composer与OpenCart一起工作的方式。 为了演示,我们将使用Composer安装流行的PHPMailer库。

使用Composer安装PHPMailer

PHPMailer是一个流行的PHP库,用于发送电子邮件。 我们将使用Composer将其安装在OpenCart中。 因此,请转到终端并更改目录,以使您与供应商目录和composer.json文件所在的级别相同。

现在,运行命令composer require phpmailer/phpmailer并按Enter键! 假设一切正常,则应如下所示。

$composer require phpmailer/phpmailer
Using version ^5.2 for phpmailer/phpmailer
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing phpmailer/phpmailer (v5.2.16)
    Downloading: 100%         


phpmailer/phpmailer suggests installing league/oauth2-google (Needed for Google XOAUTH2 authentication)
Writing lock file
Generating autoload files

就是这样了! PHPMailer已成功下载并安装,这就是Composer的美! 通过查看供应商目录进行验证,然后将其安装在phpmailer / phpmailer目录中。

另外,我们打开composer.json看看它是什么样子。

{
    "name": "opencart/opencart",
    "type": "project",
    "description": "OpenCart",
    "keywords": ["opencart", "ecommerce", "framework", "opensource"],
    "homepage": "http://www.opencart.com",
    "license": "GPL-3.0+",
    "require": {
        "cardinity/cardinity-sdk-php": "^1.0",
        "braintree/braintree_php" : "3.2.0",
        "leafo/scssphp": "0.0.12",
        "divido/divido-php": ">=1.1.1",
        "klarna/kco_rest": "^2.2",
        "php": ">=5.4.0",
        "phpmailer/phpmailer": "^5.2"
    }
}

如您所见,条目"phpmailer/phpmailer": "^5.2"已添加到require部分。 因此,这意味着您的项目需要PHPMailer才能正常工作。

假设您正在与其他开发人员合作,并且需要定期共享您的工作。 在这种情况下,您只需要与他们共享composer.json文件,其余的将由Composer自己处理! 他们只需要运行composer update命令,就应该在副本中安装所需的依赖项!

现在,我们已经使用Composer安装了PHPMailer,但是如何使用它呢? 不用担心,我不会很快离开您-这正是我们下一部分的诀窍!

如何使用PHPMailer库?

通过使用Composer安装PHPMailer库,您已经对自己有所帮助,并且在本节中将见证这一点,我们将探索在代码中使用它的简单性。

出于示例目的,我们将构建一个非常简单的自定义控制器文件,您可以调用该文件来发送电子邮件。

打开您喜欢的文本编辑器,并在catalog/controller目录下创建具有以下内容的example/email.php

<?php
class ControllerExampleEmail extends Controller {
    public function index() {
    // just instantiate the mailer object, no need to include anything to use it.
    $objPhpMailer = new PHPMailer();


    $objPhpMailer->From = "sender@example.com";
    $objPhpMailer->FromName = "Sajal Soni";
    $objPhpMailer->AddAddress("receiver@example.com");


    $objPhpMailer->WordWrap = 50;
    $objPhpMailer->IsHTML(true);


    $objPhpMailer->Subject = "Subject";
    $objPhpMailer->Body    = "<h2>HTML Body</h2>";
    $objPhpMailer->AltBody = "Plain Body";


    if(!$objPhpMailer->Send())
    {
       echo "Message could not be sent. <p>";
       echo "Mailer Error: " . $objPhpMailer->ErrorInfo;
       exit;
    }


    echo "Message has been sent";
    exit;
    }
}

您可以通过http://your-opencart-site-url/index.php?route = example / email访问您的网站进行测试。

index方法中,您可以看到,如果不使用基于Composer的工作流,则实例化PHPMailer对象时将不包含任何包含必需的PHPMailer类的include语句。 您做对了,它是由OpenCart本身自动加载的。 回想一下供应商目录中的autoload.php可以autoload.php所有魔力!

接下来是PHPMailer发送电子邮件所需的一些非常标准的内容。 当然,由于PHPMailer的讨论需要另外一篇文章,因此我尝试使该示例尽可能地简单!

因此,这是对如何将Composer与OpenCart结合使用以集成外部库的快速简单介绍。

结论

在本文中,我们仅介绍了OpenCart中基于Composer的工作流的表面,以便在您的项目中使用第三方库。 更不用说Composer是PHP中依赖管理工具的未来。 因此,尽一切努力总是一件好事,因为它已成为所有流行框架中的标准。

如有任何疑问和建议,我们将不胜感激!

翻译自: https://code.tutsplus.com/tutorials/integrate-external-libraries-in-opencart-using-composer--cms-27874

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值