Codeigniter 3 作曲家和供应商目录
Codeigniter 3 composer and vendor directory
我已经安装了 codeigniter 3.1.8 并使用 composer 安装了这个库https://github.com/php-amqplib/php-amqplib:
composer require php-amqplib/php-amqplib
这已经创建了目录 vendor
我在此处查看了关于如何使用该库的公认答案How to use composer packages in codeigniter?
但这是我在供应商中的目录结构。
秒
和内部 php-amqplib
和内部 php-amqplib
如果我查看 index.php
,我发现 fcpath 已经被定义
// Path to the front controller (this file) directory
define('FCPATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
require_once BASEPATH.'core/CodeIgniter.php';
并再次定义它会导致 error.How 我可以在我的控制器方法中使用 php-amqplib 吗?
如果您的问题是 - 我怎样才能在我的控制器方法中使用 php-amqplib?
步骤1 :
在一开始就允许或要求 autoload.php 文件,但在 codeigniter 上,您不能在 general.So 中更改配置文件中的一行,该行将自动要求 autoload.php
文件。
CodeIgniter/application/config/config.php
找到:
$config['composer_autoload'] = FALSE;
到 $config['composer_autoload'] = TRUE;
第2步 :
在你的控制器上 class 像这样:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
class Welcome extends CI_Controller {
public function index()
{
// your business logic like this
$msg = new AMQPMessage($msg_body);
$ch->batch_basic_publish($msg, $exchange);
}
}
第 3 步:
现在可以通过URL
调用
http://example.com/Welcome
现在更多ref:
PhpAmqpLib
这将打开和关闭连接
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use PhpAmqpLib\Message\AMQPMessage;
use PhpAmqpLib\Connection\AMQPStreamConnection;
class Welcome extends CI_Controller {
public function index()
{
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('hello', false, false, false, false);
$msg = new AMQPMessage('Yur message goes here....');
$channel->basic_publish($msg, '', 'hello');
$channel->close();
$connection->close();
$this->load->view('welcome_message');
}
}
更改 /application/config/config.php 中的 composer_autoload 配置,如下所示
$config['composer_autoload'] = 'vendor/autoload.php';
我已经安装了 codeigniter 3.1.8 并使用 composer 安装了这个库https://github.com/php-amqplib/php-amqplib:
composer require php-amqplib/php-amqplib
这已经创建了目录 vendor
我在此处查看了关于如何使用该库的公认答案How to use composer packages in codeigniter?
但这是我在供应商中的目录结构。
秒
和内部 php-amqplib
和内部 php-amqplib
如果我查看 index.php
,我发现 fcpath 已经被定义
// Path to the front controller (this file) directory
define('FCPATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
require_once BASEPATH.'core/CodeIgniter.php';
并再次定义它会导致 error.How 我可以在我的控制器方法中使用 php-amqplib 吗?
如果您的问题是 - 我怎样才能在我的控制器方法中使用 php-amqplib?
步骤1 :在一开始就允许或要求 autoload.php 文件,但在 codeigniter 上,您不能在 general.So 中更改配置文件中的一行,该行将自动要求 autoload.php
文件。
CodeIgniter/application/config/config.php
找到:
$config['composer_autoload'] = FALSE;
到 $config['composer_autoload'] = TRUE;
在你的控制器上 class 像这样:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
class Welcome extends CI_Controller {
public function index()
{
// your business logic like this
$msg = new AMQPMessage($msg_body);
$ch->batch_basic_publish($msg, $exchange);
}
}
第 3 步:
现在可以通过URL
调用http://example.com/Welcome
现在更多ref:
PhpAmqpLib
这将打开和关闭连接
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use PhpAmqpLib\Message\AMQPMessage;
use PhpAmqpLib\Connection\AMQPStreamConnection;
class Welcome extends CI_Controller {
public function index()
{
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$channel = $connection->channel();
$channel->queue_declare('hello', false, false, false, false);
$msg = new AMQPMessage('Yur message goes here....');
$channel->basic_publish($msg, '', 'hello');
$channel->close();
$connection->close();
$this->load->view('welcome_message');
}
}
更改 /application/config/config.php 中的 composer_autoload 配置,如下所示
$config['composer_autoload'] = 'vendor/autoload.php';