Javascript-форум (https://javascript.ru/forum/)
-   Мобильный JavaScript (https://javascript.ru/forum/mobile/)
-   -   php для мобильных? (https://javascript.ru/forum/mobile/79748-php-dlya-mobilnykh.html)

miltorg 18.03.2020 17:41

php для мобильных?
 
Мне как то совершенно ясно было, что мобильные будут двигаться в сторону того, чтоб всё размещать в облаке. Но это происходит очень медленно и через попу. - Прикрутили к мобильным js и через него читают Базу данных. Выдумывают кучу разных js фреймворков для общения с базой. Выдумали даже Rest.
Собственно мой вопрос в этом. Везде есть интернет. - Значит везде можно использовать php в полном объёме. Почему это не развивается, а идёт куда то в бок?

miltorg 18.03.2020 17:42

Вот смотрите. Есть сайт на php. А приложение - это встроенный браузер. Я уже неоднократно делал такое.
Я думал что в эту сторону всё и пойдёт.
И тогда не нужно устраивать плясок с бубном вокруг соединения JS с базой.

Чем плох такой подход и почему он не используется?

Nexus 18.03.2020 18:21

Я вообще не понял о чем речь...

Цитата:

Сообщение от miltorg
Мне как то совершенно ясно было, что мобильные будут двигаться в сторону того, чтоб всё размещать в облаке.

Вы про облачные хранилища, типа Google Disk, Yandex Disk, Onedrive и прочие?

Цитата:

Сообщение от miltorg
Прикрутили к мобильным js и через него читают Базу данных. Выдумывают кучу разных js фреймворков для общения с базой. Выдумали даже Reks.

Вы про ReactNative, Electron и п.р.?

Цитата:

Сообщение от miltorg
Выдумали даже Reks

Не поделитесь ссылочкой на проект? Не могу найти о чем речь.

Цитата:

Сообщение от miltorg
Везде есть интернет. - Значит везде можно использовать php в полном объёме.

Почему именно PHP и какая вообще связь между вездесущим доступом к сети и PHP?

Цитата:

Сообщение от miltorg
Вот смотрите. Есть сайт на php. А приложение - это встроенный браузер.

Вы про приложения, которые из себя представляют просто WebView?

Цитата:

Сообщение от miltorg
И тогда не нужно устраивать плясок с бубном вокруг соединения JS с базой.

В каком случае JS нужно подключиться к БД сайта (исключая случай, когда на сервере у нас NodeJs)?

miltorg 18.03.2020 18:51

Цитата:

Вы про приложения, которые из себя представляют просто WebView?
Да

miltorg 18.03.2020 18:54

Цитата:

В каком случае JS нужно подключиться к БД сайта (исключая случай, когда на сервере у нас NodeJs)?
??? Ну для хранения положения выключателя, например.

Зачем нам база данных ?
Замечательный вопрос

Nexus 18.03.2020 19:41

Цитата:

Сообщение от miltorg
??? Ну для хранения положения выключателя, например.

Оперативная память устройства почему не подходит, как хранилище?
Состояние также можно переключать, получать его значение через API.

miltorg 18.03.2020 19:45

Цитата:

Сообщение от Nexus (Сообщение 521453)
Оперативная память устройства почему не подходит, как хранилище?
Состояние также можно переключать, получать его значение через API.

Вы не прикалываетесь?

А если ваш начальник тоже захочет узнать положение выключателя или изменить его?

Nexus 18.03.2020 20:41

Цитата:

Сообщение от miltorg
Вы не прикалываетесь?

Нет, не прикалываюсь.

Цитата:

Сообщение от miltorg
А если ваш начальник тоже захочет узнать положение выключателя или изменить его?

Под "тоже" вы подразумеваете, что пользователей интерфейса будет несколько?
В чем проблема используемого подхода?

Приложение:
- загружается;
- получает по API текущее состояние "выключателя";
- сохраняет полученное текущее состояние в RAM;
- подписывается на событие "изменения" состояния выключателя*;
- отзывается на манипуляции пользователя.

* это можно опустить, если отображение неверного состояния "выключателя" по какой-то причине является допустимым.

Aetae 18.03.2020 20:58

miltorg, http://phpfaq.ru/newbie/na_tanke

miltorg 18.03.2020 21:10

Цитата:

Сообщение от Nexus (Сообщение 521455)
Нет, не прикалываюсь.


Под "тоже" вы подразумеваете, что пользователей интерфейса будет несколько?
В чем проблема используемого подхода?

Приложение:
- загружается;
- получает по API текущее состояние "выключателя";
- сохраняет полученное текущее состояние в RAM;
- подписывается на событие "изменения" состояния выключателя*;
- отзывается на манипуляции пользователя.

* это можно опустить, если отображение неверного состояния "выключателя" по какой-то причине является допустимым.

На php ответ из базы данных прямой.
Изменение в базе - на прямую.
Количество кода - минимально. 2 строки кода на Сервере - подключение к БД, запрос. Всё.
Вы правда не понимаете?

Nexus 18.03.2020 22:23

Цитата:

Сообщение от miltorg
На php ответ из базы данных прямой.
Изменение в базе - на прямую.
Количество кода - минимально.

К чему это?
Что я на этих строчках должен был осознать, что перевернуло бы все мое представление о разработке веб-приложений?

Цитата:

Сообщение от miltorg
Вы правда не понимаете?

Правда. Поясните, пожалуйста, свою мысль.

miltorg 18.03.2020 22:28

Цитата:

Сообщение от Nexus (Сообщение 521463)

Правда. Поясните, пожалуйста, свою мысль.

Извините, но общаясь тут - я рассчитываю на определённый уровень знаний собравшихся. - То есть я рассчитываю получить знания. Я.

Aetae 18.03.2020 22:33

miltorg, чувак, у тебя в голове каша.
Ты не понимаешь что делает javascript, а что делает php.
Что это вообще разные вещи.
И что если javascript, благодаря node, может заменить php, то php, ввиду отсутствия наличия интерфейсной либы(кому бы такой бред в голову пришёл?), заменить javascript не в состоянии.

Nexus 18.03.2020 22:39

miltorg, желание получить знания, но нежелание ими делиться - не есть хорошо.

Какие Вы знания хотите здесь получить, скорее всего, никто не понял, уж я - точно.

Если Ваш вопрос заключается в том, почему из js нельзя напрямую долбить базу, то моим ответом будет:
- Это чрезвычайно не безопасно. Каждый клиент по сути будет являться отдельным приложением, поэтому:
- нельзя прикрутить централизованное кеширование;
- в единицу времени может параллельно существовать несколько версий одного и того же приложения и т.д.

"Не секурно" должно хватать, чтобы сразу забыть об этой мысли.

miltorg 18.03.2020 22:46

Цитата:

Сообщение от Nexus (Сообщение 521468)
miltorg, желание получить знания, но нежелание ими делиться - не есть хорошо.

Какие Вы знания хотите здесь получить, скорее всего, никто не понял, уж я - точно.

Если Ваш вопрос заключается в том, почему из js нельзя напрямую долбить базу, то моим ответом будет:
- Это чрезвычайно не безопасно. Каждый клиент по сути будет являться отдельным приложением, поэтому:
- нельзя прикрутить централизованное кеширование;
- в единицу времени может параллельно существовать несколько версий одного и того же приложения и т.д.

"Не секурно" должно хватать, чтобы сразу забыть об этой мысли.

Мой вопрос есть в самом первом сообщении. Почему правильная технология для ВЕБ - php, не развивается в мобильных?
Раньше интернет был не везде и дорого. Сейчас он практически везде

miltorg 18.03.2020 22:47

Тем более для приложений которые используют серверную БД

miltorg 18.03.2020 22:49

Например Rest запрос со стороннего сервера - 1 строка кода.

Aetae 18.03.2020 23:06

Nexus, судя потому что он меня игнорирует - это просто жир, не обращай внимание.

Nexus 18.03.2020 23:12

Цитата:

Сообщение от miltorg
правильная технология для ВЕБ - php

Правильным для веб может быть любой другой язык, не обязательно PHP.

Цитата:

Сообщение от miltorg
Почему [...] php не развивается в мобильных?

Точного ответа у меня нет.
Вероятно есть способы написать мобильное приложение на PHP, но это будет тоже самое, что и писать его на js - сначала нужно будет написать интерфейс, который будет позволять взаимодействовать приложению на PHP с системой на Java, Swift или Objective-C (могу ошибаться в языках, используемых в Android и iOS). Это наверняка будет работать медленнее, чем на нативном для системы языке.
Так же возможно, что у PHP проблемы с работой в несколько потоков (в 7.2 появилось расширение parallel, но я с ним еще не игрался).
Ну и опять же: напрямую из приложения работать с БД сайта не безопасно + все остальное, что я писал про "js из браузера".

Vlasenko Fedor 18.03.2020 23:17

miltorg,
у каждого языка есть своя ниша и порог вхождения.
php хорош из-за низкого порога вхождения, цена оплаты труда за разработку (низкая по сравнению go,rust,c++, js)
большое комьнити и готового кода
посмотрите к примеру тест производительности
https://www.techempower.com/benchmarks/
не спорьте с дядьками выше, они курсором зарежут :lol:
пока молодой и есть время читай

miltorg 18.03.2020 23:17

Цитата:

Сообщение от Nexus (Сообщение 521473)
Ну и опять же: напрямую из приложения работать с БД сайта не безопасно + все остальное, что я писал про "js из браузера".

А как это php может работать с базой из браузера?
Теперь я вас не понимаю.

Vlasenko Fedor 18.03.2020 23:21

miltorg,
консольные приложения
не несите чушь, изучайте язык, пару раз скомпильте его под свои нужды, напишите несколько своих extension, а затем мы вас послушаем

miltorg 18.03.2020 23:21

Цитата:

Сообщение от Poznakomlus (Сообщение 521474)
пока молодой и есть время читай

А по сути то есть что сказать?
Повторю ещё раз. Всё что связано с БД на php решается проще и без затыков - потому что БД и php-файл на сервере

Nexus 18.03.2020 23:22

Цитата:

Сообщение от miltorg
А как это php может работать с базой из браузера?

Никак, вы неправильно поняли.

Я имел ввиду, что если, предположим, написать для мобильной ОС приложение на PHP, которое напрямую будет работать с БД сайта, то у этого приложения будут те же недостатки, что и при работе с БД сайта из браузера:

Цитата:

Сообщение от Nexus
- Это чрезвычайно не безопасно. Каждый клиент по сути будет являться отдельным приложением, поэтому:
- нельзя прикрутить централизованное кеширование;
- в единицу времени может параллельно существовать несколько версий одного и того же приложения и т.д.


miltorg 18.03.2020 23:30

Цитата:

Сообщение от Nexus (Сообщение 521478)
- Это чрезвычайно не безопасно.

А по каким же тогда технологиям работают банки?
Почти уверен что для сайтов - всё на php.

Nexus 18.03.2020 23:36

Цитата:

Сообщение от miltorg
А по каким же тогда технологиям работают банки?

Приложения отправляют запросы к серверам, сервера общаются с БД и возвращают данные в ответ на запрос.

На этом предпочту остановится, дальше Вам либо кто другой ответит, либо Google.

Также можете создать топик в разделе "Работа" для поиска консультанта/ментора, компенсацию за час уделенного времени не забудьте в этом случае указать.

Всего доброго.

miltorg 18.03.2020 23:37

магазины - точно все на php

miltorg 18.03.2020 23:39

Цитата:

Сообщение от Nexus (Сообщение 521480)
Приложения отправляют запросы к серверам, сервера общаются с БД и возвращают данные в ответ на запрос.

Так я это и предлагаю уже на 3-х страницах обсуждения.
А вы пишите, что это очень небезопасно.

Nexus 18.03.2020 23:43

Цитата:

Сообщение от miltorg
Так я это и предлагаю уже на 3 странице обсуждения.

Прочитайте сообщения с шестого по десятое.

Мы с Вами как слепой с глухим - не понимаем друг друга.
Отписался от топика.

miltorg 18.03.2020 23:51

Я всё отлично понимаю.

Rise 19.03.2020 05:14

Цитата:

Сообщение от miltorg
Почему правильная технология для ВЕБ - php, не развивается в мобильных?

Как PHP может развиваться там где он физически не существует? Мобильник это не сервер, это клиент. В браузере существует только JS. Вот он и развивается, адаптируясь под мобильники. Сейчас его еще можно на сервере использовать, удобно, один язык для клиентской и серверной части, не надо учить всякие PHP.

laimas 19.03.2020 06:20

Цитата:

Сообщение от miltorg
На php ответ из базы данных прямой.
Изменение в базе - на прямую.

Не напрямую, а через драйвер.

miltorg 19.03.2020 13:44

Цитата:

Сообщение от laimas (Сообщение 521487)
Не напрямую, а через драйвер.

Чего??? Как это? Я про:

$mysqli = new mysqli("example.com", "user", "password", "database");

$res = $mysqli->query("SELECT * FROM test WHERE id = 1");


А вы про что?

miltorg 19.03.2020 13:46

Цитата:

Сообщение от Rise (Сообщение 521486)
Как PHP может развиваться там где он физически не существует? Мобильник это не сервер, это клиент. В браузере существует только JS. Вот он и развивается, адаптируясь под мобильники. Сейчас его еще можно на сервере использовать, удобно, один язык для клиентской и серверной части, не надо учить всякие PHP.

Вы говорите то, что ясно и так всем.

Кстати на Дисктопе тоже нет php, но сайты все на php.

laimas 19.03.2020 13:49

Цитата:

Сообщение от miltorg
Чего??? Как это?

А вот так. Не знает SQL ни о РНР, ни о JS, да и не обязан. Он предоставляет инструменты для работы с базой. А другие языки их используют, а для удобства пишут драйверы для этого. То что вы написали, это не прямой доступ к БД, это как раз работа через драйвер mysqli, в папку расширений не мешало бы заглянуть. Вот не будет его у вас, и получите вы фигу на свой запрос.

miltorg 19.03.2020 14:14

Цитата:

Сообщение от laimas (Сообщение 521502)
А вот так. Не знает SQL ни о РНР, ни о JS, да и не обязан. Он предоставляет инструменты для работы с базой. А другие языки их используют, а для удобства пишут драйверы для этого. То что вы написали, это не прямой доступ к БД, это как раз работа через драйвер mysqli, в папку расширений не мешало бы заглянуть. Вот не будет его у вас, и получите вы фигу на свой запрос.

А print - это работа через драйвер print :-) - Ясно чё.

laimas 19.03.2020 14:48

Цитата:

Сообщение от miltorg
А print - это работа через драйвер print :-)

У вас знаний в этой области на 3 копейки и вы пытаетесь представить бред что тут несете за истину. Напрямую, это взять таблицу базы данных и ковыряться в ней средствами РНР, вот что значит на прямую, и тогда не будет никаких SELECT... А в $mysqli->query("SELECT * FROM test WHERE id = 1"); от РНР только обращение к библиотеке, которая кстати на С написана, а "SELECT * FROM test WHERE id = 1" уже SQL язык.

Вы лучше бы почитали о MySQL, что это такое, как работает, а не пороли бы чушь несусветную.

Rise 19.03.2020 16:09

Цитата:

Сообщение от miltorg
Вы говорите то, что ясно и так всем.
Кстати на Дисктопе тоже нет php, но сайты все на php.

Сайт состоит из двух частей клиент и сервер, клиент на одном компьютере, сервер на другом, как правило. Что вы хотите, чтобы на клиенте был PHP, которого там никогда не было, или чтобы там не было JS, который там всегда был, или у вас сервер на мобильном, вы что на смартфоне сайты хостите, почему мобильные должны двигаться в сторону PHP?

Цитата:

Сообщение от miltorg
$mysqli = new mysqli("example.com", "user", "password", "database");
$res = $mysqli->query("SELECT * FROM test WHERE id = 1");

В JS это тоже делается напрямую в 2 строки кода на сервере:
let connection = mysql.createConnection({ host: "example.com", user: "user", password: "password", database: "database" });
connection.query("SELECT * FROM test WHERE id = 1", function (error, results) { ... });

miltorg 19.03.2020 16:41

Ок. Вернёмся на землю.
На собеседовании мне задали вопрос:
Как получить на клиенте Рест запрос с удалённого сервера?
Я написал:
$json = file_get_contents('https://api.site.com/v1/profile');
$data = json_decode($json, true);
echo $data['name'];

Он сказал, что всё неверно и начал выдумывать что-то про безопасность.

php - хавает такие задачки на завтрак и по умолчанию.
В JS есть такое?

miltorg 19.03.2020 16:50

2 задание. Узнать на клиенте положение выключателя (вкл/выкл) для неограниченного числа пользователей
php:

$mysqli = new mysqli("example.com", "user", "password", "database");

$rez = $mysqli->query("SELECT vk FROM test WHERE id = 1")
-> fetch_assoc();

print $rez['vk'];

А для JS?


Часовой пояс GMT +3, время: 14:45.