я использую этот php библиотека. Это упоминает это:
Этот проект может работать на PHP 7, PHP 5.6 и HHVM, поддерживаются только 64-битные системы ATM.
Он отлично работает в linux
хост (cpanel) с php5.6
, Но не работает в окнах. Я установил Wamp. В phpinfo()
Вроде все ок. Я что-то пропустил? Что такое ATM
средства?
мой phpinfo()
:
Ошибка:
Fatal error: Uncaught exception 'danog\MadelineProto\Exception' with message 'MadelineProto supports only 64 bit systems ATM' in C:\wamp64\www\telegramphp3\src\danog\MadelineProto\API.php on line 30
Их API.php
содержит следующий код:
// Detect 64 bit
if (PHP_INT_SIZE < 8) {
throw new Exception('MadelineProto supports only 64 bit systems ATM');
}
То, что они делают, это не проверять, когда вы запускаете 64-битную сборку PHP, или нет, если ваша система 64-битная, а что размер в байтах для целого числа. Это значение может быть 4 (32-разрядным) или 8 (64-разрядным) в PHP7 (текущие сборки Windows). В более старых версиях PHP (по крайней мере в 64-битных сборках для 5.6, которые помечены как экспериментальные) это значение будет всегда 4.
Таким образом, чтобы использовать эту библиотеку в вашей системе, вам необходимо:
Это происходит потому, что библиотека проверяет 64-битную версию, проверяя константу PHP_INT_SIZE. Эта константа всегда равна 4 в Windows, когда вы используете PHP 5.6, даже в 64-битных системах. Для этой проблемы в Windows, см. PHP_INT_SIZE возвращает 4, но моя операционная система 64-битная
«Проблема» может быть найдена в API.php вокруг строки 29. Эта проверка, хотя и неверная, кажется рекомендуемый способ проверить на 64 бит. Несмотря на это, если они действительно полагаются на 8-битные целые числа, я думаю, что вы не можете использовать эту библиотеку в Windows с PHP 5.6.
PHP 7 поддерживает 64-битные целые числа в Windows, поэтому я думаю, что вам следует перейти на PHP 7, если вы хотите использовать эту библиотеку.