В настоящее время я переношу свой проект с Laravel 4 на Laravel 5, но я все еще новичок в Laravel и OOP, но до сих пор все прошло гладко.
Однако в моем проекте L4 я использую phpseclib для генерации ключей SSH, которые я импортировал следующим образом:
MyController.php
... include('../app/libs/phpseclib0.3.10/Crypt/RSA.php'); $rsa = new Crypt_RSA(); ...
который, кажется, больше не работает:
syntax error, unexpected 'if' (T_IF), expecting identifier (T_STRING)
… / приложение / ЛИЭС / phpseclib0.3.10 / Crypt / RSA.php
/** * Include Crypt_Random */ // the class_exists() will only be called if the crypt_random_string function hasn't been defined and // will trigger a call to __autoload() if you're wanting to auto-load classes // call function_exists() a second time to stop the include_once from being called outside // of the auto loader if (!function_exists('crypt_random_string')) { include_once 'Random.php'; }
Я знаю, что есть пакет phpseclib: https://packagist.org/packages/phpseclib/phpseclib
и я также знаю, как установить его в моем проекте L5.
Тем не менее, я не знаю, как использовать пакет phpseclib в моем проекте Laravel 5 после того, как я его установил.
Итак, после того, как я установил пакет phpseclib в свой проект L5, как создать свой SSH-ключ, похожий на это:
$rsa = new Crypt_RSA();
PHPSec использует композитор, вы должны иметь возможность просто composer require "phpseclib/phpseclib=~0.3.10"
и иметь его доступным (автозагрузка).
$rsa = new \Crypt_RSA();
Переработав этот другой ответ и заглянув в папку vendor / phpseclib /, мне удалось заставить его работать с этим синтаксисом:
use phpseclib\Crypt\RSA; ... ... $rsa = new RSA(); $rsa->setPublicKeyFormat(RSA::PUBLIC_FORMAT_OPENSSH); extract($rsa->createKey()); echo "$publickey\r\n\r\n$privatekey";
По крайней мере, он работает на версии phpseclib ^ 2.0