Как загрузить Pheanstalk в PHP?

Я пытаюсь заставить Pheanstalk работать на PHP, но не могу его загрузить.

Я скачал исходный код с https://github.com/pda/pheanstalkЯ переместил src / Pheanstalk в каталог моего проекта, а затем сделал следующее в test.php:

use Pheanstalk\Pheanstalk;
$pheanstalk = new Pheanstalk('127.0.0.1');

Но это дает мне следующую ошибку:

Fatal error: Class 'Pheanstalk\Pheanstalk' not found in test.php on line 2

Как мне просто использовать Pheanstalk из клонированного git-репозитория?

3

Решение

Я написал статью о бобовом стебле, бобовом стебле и финстальке;

Проверьте это: Как установить Beanstalkd и Pheanstalk в Ubuntu

Решение вашей проблемы есть.

1). устанавливать Ubuntu Desktop или же Server используя Virtual Machine,

я использовал Oracle VM VirtualBox для этого примера.

Убедитесь, что Bridged Network Connection был установлен.

Установите имя пользователя и пароль при запросе.

Я использовал:

Имя пользователя: william
пароль: 123456

2). Запустите Ubuntu и войдите

3). Войти как Суперпользователь

использовать: sudo su
и введите пароль суперпользователя при запросе (мой: 123456);

4). устанавливать Open SSH и получить доступ к Ubuntu virtual machine с помощью Putty,

документы: https://help.ubuntu.com/10.04/serverguide/openssh-server.html

использовать: apt-get install openssh-client

установить клиент, а затем

использовать: apt-get install openssh-server

установить сервер;

5). устанавливать Apache2 веб сервер

использовать: apt-get install apache2

Теперь введите следующее в браузере:

http://localhost

а также
ip вашей виртуальной машины (мой был 192.168.1.104 )

6). устанавливать MySQL

использовать: apt-get install mysql-server php5-mysql

установить пароль для MySQL root пользователь: 123456
повторить пароль: 123456

7). устанавливать PHP5

использовать: apt-get install php5 libapache2-mod-php5 php5-mcrypt

8). устанавливать cURL

использовать: apt-get install curl

9). устанавливать Composer

Официальный веб-сайт: https://getcomposer.org/
документы: https://getcomposer.org/doc/00-intro.md ( Начиная )

использовать: curl -s http://getcomposer.org/installer | php
или же
использовать: curl -sS https://getcomposer.org/installer | php
теперь composer.phar необходимо переместить и преобразовать

использовать: mv composer.phar /usr/bin/composer

10). устанавливать Beanstalkd

использовать: apt-get install beanstalkd

Теперь давайте удостоверимся, что beanstalkd persistent mode is active

пс топор

пс топор | бобы

найдите beanstalkd.conf

updatedb

найдите beanstalkd.conf

nano /etc/default/beanstalk

uncomment last line in order to save persistent mode to active

11). устанавливать Pheanstalk

документы: https://github.com/pda/pheanstalk

изменить каталог
использовать: cd /var/www/html

создайте новый каталог: / var / www / html / pheanstalk_test
использовать: mkdir pheanstalk_test

изменить каталог на новый созданный каталог
использовать: cd pheanstalk_test

создайте файл composer.json в этом новом каталоге
использовать: nano composer.json

запишите в файл следующие данные:
{
"require":{
"pda/pheanstalk":"v3.0.0"}
}

и сохраните файл (нажмите клавиши Ctrl + X, нажмите клавишу Y, нажмите клавишу ВВОД)

использовать: composer update

Теперь данные папки поставщика должны начать загружаться

или используйте: git clone https://github.com/pda/pheanstalk.git

Примеры:
как поместить данные на трубку / с

<?php
include 'vendor/autoload.php';
use Pheanstalk\Pheanstalk;
$pheanstalk = new Pheanstalk('127.0.0.1');
while(true){
$tube_id=rand(1,9);
$r1=rand(1,10000000);
$r2=rand(1,10000000);
$pheanstalk->useTube('testtube'.$tube_id)->put('{'.$r1.':'.$r2.'}');
}
?>

использовать: php put.php
и начнется процесс сдачи
Информация! чем больше открытых экземпляров, тем больше данных попадает на трубку / с

как получить данные из трубки / с

<?php
include 'vendor/autoload.php';
use Pheanstalk\Pheanstalk;
$pheanstalk = new Pheanstalk('127.0.0.1');
while(true){
$tube_id=rand(1,9);
$job=$pheanstalk->watch('testtube'.$tube_id)->ignore('default')->reserve();
if($job){
echo $job->getdata();
$pheanstalk->delete($job);
}
}
?>

использовать: php get.php
и начнется процесс получения
Информация! чем больше открытых экземпляров, тем больше данных обрабатывается;

12). устанавливать Beanstalk Console

документы: https://github.com/ptrofimov/beanstalk_console

изменить каталог

использовать: cd /var/www/html

создать новую папку

использовать: mkdir beanstalk_console

использовать: git clone https://github.com/ptrofimov/beanstalk_console.git

изменить права на файл: storage.json
chmod 777 storage.json

теперь, чтобы получить доступ beanstalk consoleнапишите в браузере: http://localhost/beanstalk_console/public

13). Это оно!

4

Другие решения

Хотя ответ Ionut является жизнеспособным для того, чтобы заставить Pheanstalk работать, на самом деле он не отвечает на поставленный вопрос: как вы получаете Pheanstalk, работающий из git-клона репозитория проекта? (Здесь подразумевается, что вы не хотите использовать Composer для установки, это предположение, которое я буду использовать для этого ответа.)

Основная проблема в том, что вы не можете просто require('src/Pheanstalk.php'); и затем начните использовать класс Pheanstalk. Библиотека Pheanstalk в значительной степени зависит от автозагрузки классов PHP, поэтому без этой настройки произойдет ошибка, как описано в исходном вопросе.

Если у вас уже есть PSL-4-совместимый автозагрузчик для вашего проекта, то отлично! Направьте его в раздел psr-4 файла composer.json и посмотрите на магическую работу.

Однако для всех остальных вы захотите использовать функцию, предоставленную Тибо в ответе на аналогичный вопрос: https://stackoverflow.com/a/39774973

Предполагая, что у вас есть клон Pheanstalk git в ваш проект по адресу pheanstalk, вы можете просто использовать loadPackage('pheanstalk') и все должно работать правильно.

Полный пример:

function loadPackage($dir)
{
$composer = json_decode(file_get_contents("$dir/composer.json"), 1);
$namespaces = $composer['autoload']['psr-4'];

// Foreach namespace specified in the composer, load the given classes
foreach ($namespaces as $namespace => $classpath) {
spl_autoload_register(function ($classname) use ($namespace, $classpath, $dir) {
// Check if the namespace matches the class we are looking for
if (preg_match("#^".preg_quote($namespace)."#", $classname)) {
// Remove the namespace from the file path since it's psr4
$classname = str_replace($namespace, "", $classname);
$filename = preg_replace("#\\\\#", "/", $classname).".php";
include_once $dir."/".$classpath."/$filename";
}
});
}
}

loadPackage(__DIR__."/pheanstalk");

use Pheanstalk\Pheanstalk;

$pheanstalk = new Pheanstalk('127.0.0.1');

echo $pheanstalk->getConnection()->isServiceListening();
0

По вопросам рекламы [email protected]