Статьи

Android Elephpant — Laravel на вашем телефоне Android?

Не так давно Кристофер Питт написал отличную статью о написании и запуске PHP-кода на iPad . Прочитав его, я подумал: «Было бы здорово сделать то же самое на Android»: возможность писать и редактировать код «на лету», например, во время путешествий, и не брать с собой ноутбук везде. Поэтому я решил провести небольшое исследование и посмотреть, что я смогу придумать.

Android Elephpant

В этой статье вы можете использовать любой тип устройства Android. Я сделал это на своем телефоне, но планшет Android с клавиатурой Bluetooth, вероятно, был бы идеальной установкой.

Существует несколько различных приложений для Android. Для этого урока мы будем использовать один из них под названием Termux .

Termux

Termux сочетает в себе мощную эмуляцию терминала и обширную коллекцию пакетов Linux. Это также совершенно бесплатно и легко в использовании.

После установки Termux из Play Store первым делом нужно запустить команду apt update . Согласно документации : «Эту команду необходимо запускать сразу после установки и регулярно после нее для получения обновлений».

Теперь самое интересное. Первые две команды, о которых я хочу поговорить, это команды apt list и apt list --installed . Первый перечислит все доступные пакеты для Termux. Мы видим, что он поддерживает множество различных языков программирования, текстовых редакторов и имеет несколько полезных пакетов утилит, таких как zip, tar и так далее. Вторая команда выведет список всех установленных пакетов. Как мы видим, Termux уже поставляется с некоторыми предварительно установленными пакетами, такими как apt и bash.

Моя цель при тестировании Termux состояла в том, чтобы посмотреть, смогу ли я собрать правильную * среду разработки PHP, поэтому я начал с установки текстового редактора. Я предпочитаю Vim, но есть еще несколько вариантов, таких как Emacs и Nano. В Vim есть некоторая кривая обучения, но она становится очень удобной, когда вы проходите основы. Вы можете получить Vim с помощью команды apt install vim .

Если вы хотите узнать больше о vim, есть эта очень хорошая статья или, альтернативно, после ее установки, введите vimtutor чтобы использовать встроенный учебник.

Если вы тестируете это на своем телефоне Android, запуск vim принесет первый набор проблем. Как я могу нажать кнопку Escape ? Termux имеет большой список сочетаний клавиш, которые используются для имитации кнопок, которые недоступны на клавиатурах Android:

команда ключ
Увеличение громкости + E Клавиша Escape
Увеличение громкости + T Клавиша Tab
Увеличение громкости + 1 F1 (и увеличение громкости + 2 → F2 и т. Д.)
Увеличение громкости + 0 F10
Увеличение громкости + B Alt + B, вернуть слово при использовании readline
Увеличение громкости + F Alt + F, переслать слово при использовании readline
Увеличение громкости + X Alt + X
Громкость вверх + W Стрелка вверх
Увеличение громкости + A Клавиша со стрелкой влево
Увеличение громкости + S Стрелка вниз
Увеличение громкости + D Клавиша со стрелкой вправо
Громкость вверх + L (символ трубы)
Увеличение громкости + U _ (подчеркивать)
Увеличение громкости + P Page Up
Увеличение громкости + N Листать вниз
Увеличение громкости +. Ctrl + \ (SIGQUIT)
Увеличение громкости + V Показать регулятор громкости

Теперь, когда у нас есть готовый редактор, пришло время установить нужные нам пакеты: PHP, Git и Composer.

 apt install php apt install git 

Это установит последние пакеты PHP и Git.

Пакеты-1

Для Composer нам нужно немного поработать. Нам нужно перейти на страницу загрузки Composer и использовать инструкции по установке из командной строки:

 php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" 

Это загрузит установщик, проверит его, запустит и удалит. Если все прошло хорошо, мы сможем запустить Composer из Termux.

Пакеты-2

Теперь, когда у нас установлены все наши инструменты, мы должны проверить, правильно ли работает наша установка PHP. Для этого давайте сделаем простой phpinfo() . Давайте создадим новую папку и протестируем нашу установку PHP.

 mkdir test cd test echo "<?php phpinfo();" > index.php php -S localhost:8080 

Это создаст новую папку, а затем создаст файл index.php с командой phpinfo() внутри нее. Я передаю его прямо в файл, но вы можете использовать Vim для этого. Наконец, мы используем сервер PHP для обслуживания нашего локального хоста. При доступе к localhost:8080 в нашем браузере мы должны увидеть что-то вроде этого:

PHPInfo

Теперь у нас есть Composer для управления зависимостями и git для контроля версий. Но я знаю, что вы думаете: «мы только что сделали простой тест phpinfo , а как насчет остальных?».

Можем ли мы установить Laravel на устройство Android?

На данный момент у нас есть все необходимое для установки и запуска Laravel на нашем устройстве Android. Чтобы создать новый проект Laravel, нам нужно выполнить следующую команду:

 php composer.phar create-project --prefer-dist laravel/laravel new_project 

Это создаст новый проект Laravel в папке new_project . Опция --prefer-dist хорошо документирована здесь . Установка, вероятно, займет немного времени. После его завершения мы можем запустить наш недавно созданный проект, используя собственный интерфейс командной строки Artisan от Laravel. Внутри папки new_project мы можем запустить команду:

 php artisan serve 

Доступ к localhost:8000 URL в браузере должен показать нам домашний экран Laravel.

Главный экран на мобильном телефоне

Успех! Наша установка Laravel завершена. Мы успешно установили инструменты, необходимые для написания и выполнения кода. Но ни одна среда разработки не обходится без способа сохранения данных.

Когда речь идет об устройствах Android, большую часть времени у вас возникают проблемы с памятью и объемом памяти. Из-за этого Termux предлагает только sqlite как способ сохранения данных. SQLite — это серверная база данных, основанная на файлах. Он легок и идеален для небольших объемов данных, как вы можете прочитать здесь и в этом разделе, помимо основного сообщения . Сначала нам нужно его установить.

 apt install sqlite 

Далее нам нужно настроить наш проект Laravel для использования sqlite. В корне нашего проекта у нас есть файл .env . Это файл конфигурации среды, и это первый файл, который нам нужно отредактировать. Используйте свой редактор для редактирования следующих строк:

 DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=sync 

Затем перейдите в файл config/database.php и измените следующую строку с:

 'default' => env('DB_CONNECTION', 'mysql'), 

в

 'default' => env('DB_CONNECTION', 'sqlite'), 

Это сделает sqlite соединением по умолчанию из массива connections .

 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', ], 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ], 'pgsql' => [ 'driver' => 'pgsql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '5432'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', 'sslmode' => 'prefer', ], ], 

Путь к database.sqlite данных указывает на файл database.sqlite . Этот файл еще не существует, поэтому нам нужно его создать.

 touch database/database.sqlite 

Это все настройки, которые мы должны указать Laravel для использования SQLite — теперь мы готовы его протестировать. Мы будем использовать предварительно созданную систему аутентификации Laravel. Для создания скаффолда нам нужно выполнить следующую команду:

 php artisan make:auth 

После этого мы запустим миграции для построения схемы нашей базы данных. Это создаст таблицы users и password_reset .

 php artisan migrate 

Если мы снова запустим php artisan serve мы увидим, что теперь у нас есть возможность зарегистрироваться и войти в систему. Наш аутентификационный CRUD успешно создан!

Главный экран с опцией регистрации

Вывод

Я сделал все это на моем телефоне Android. Эта настройка отлично подходит для небольших задач разработки, поскольку в ней есть все инструменты, необходимые для начала разработки на небольших устройствах, без необходимости носить ноутбук с собой повсюду.

Хотя это не совсем вершина производительности, она может легко пригодиться, когда необходимо срочно исправить проблему или когда вы хотите увидеть, какую производительность PHP вы можете получить с устройства Android.

Попробуйте и расскажите нам, что вы думаете, и если вы создали что-то интересное в PHP на Android, продайте нам концепцию, и мы напишем об этом!


* правильное значение, соответствующее контексту. На телефоне Android не будет работать MySQL, и он не сможет запускать сложные тестовые наборы, особенно тесты e2e, но другие вещи могут просто работать достаточно хорошо, чтобы выполнить некоторую работу.