Не так давно Кристофер Питт написал отличную статью о написании и запуске PHP-кода на iPad . Прочитав его, я подумал: «Было бы здорово сделать то же самое на Android»: возможность писать и редактировать код «на лету», например, во время путешествий, и не брать с собой ноутбук везде. Поэтому я решил провести небольшое исследование и посмотреть, что я смогу придумать.
В этой статье вы можете использовать любой тип устройства Android. Я сделал это на своем телефоне, но планшет Android с клавиатурой Bluetooth, вероятно, был бы идеальной установкой.
Существует несколько различных приложений для Android. Для этого урока мы будем использовать один из них под названием 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.
Для 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.
Теперь, когда у нас установлены все наши инструменты, мы должны проверить, правильно ли работает наша установка PHP. Для этого давайте сделаем простой phpinfo()
. Давайте создадим новую папку и протестируем нашу установку PHP.
mkdir test cd test echo "<?php phpinfo();" > index.php php -S localhost:8080
Это создаст новую папку, а затем создаст файл index.php
с командой phpinfo()
внутри нее. Я передаю его прямо в файл, но вы можете использовать Vim для этого. Наконец, мы используем сервер PHP для обслуживания нашего локального хоста. При доступе к localhost:8080
в нашем браузере мы должны увидеть что-то вроде этого:
Теперь у нас есть 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, но другие вещи могут просто работать достаточно хорошо, чтобы выполнить некоторую работу.