«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2021/08/13 14:29:04  №2126875 1
можно ли сделать передачу данных из одного куска кода в другие в зависимости от ситуации?
Ответы: >>2126884 >>2126923
Аноним 2021/08/13 14:43:47  №2126884 2
>>2126875
Как это? Передачу переменной в пределах одного php файла? Да, если переменная условно-глобальная, то ее будут видеть все функции. Просто суй ее в них.
Использовать переменную, созданную в одном файле, в другом файле? Зачем так делать? Это не очень правильно. Она должна использоваться там, где создалась.
Передавать данные из, например, формы отправки сообщения, и передавать их в скрипт обработки этих данных? Да, можно. В форме указываешь урл скрипта/сам скрипт. И через массиве $_GET или $_POST передаешь.
Обращаться к определенным глобальным переменным/сущностям в современных движках? Да, можно. В yii2 или laravel для вот этой страницы уже есть некий набор стандартных переменных с полезной информацией. Например, текущий урл, имя сервера и прочие штуки. Тебе их не надо самому создавать, они есть.
Ответы: >>2126898
Аноним 2021/08/13 15:00:38  №2126898 3
>>2126884
>Использовать переменную, созданную в одном файле, в другом файле?
Ответы: >>2126912 >>2126961
Аноним 2021/08/13 15:21:08  №2126912 4
>>2126898
Если у тебя два голых файла, то тебе надо указать в одном ссылку на другой через require_once или require

То-есть в одном файле создаешь переменную.
Затем в другом файле пишешь require_once("первый файл")
И теперь все переменные из первого файла доступны во втором после строчки с require_once

Но в движках используют use с namespace обычно, плюс автолоады с композерами
Ответы: >>2126921
Аноним 2021/08/13 15:36:38  №2126921 5
>>2126912
намспейс это описание пути к файлу с классом?
Ответы: >>2126927 >>2126966
Аноним 2021/08/13 15:47:14  №2126927 6
Ответы: >>2126966
Аноним 2021/08/13 16:18:31  №2126966 7
>>2126921

Нет, неправильно. Это не путь (хотя он может частично с ним совпадать). Неймспейс это начальная часть длинного имени класса.

То есть, если полное имя класса \Zend\Db\Error, то короткое имя класса это Error, а неймспейс это \Zend\Db.

Зачем это нужно, можно прочитать в уроке про неймспейсы: https://github.com/codedokode/pasta/blob/master/php/autoload.md

>>2126927

Зачем ты сбиваешь человека? Неймспейс это не путь к классу, а префикс длинного имени класса, который может совпадать с путем к классу. А может и не совпадать.
Ответы: >>2126980 >>2126995
Аноним 2021/08/13 16:30:55  №2126980 8
>>2126966
>Неймспейс это не путь к классу, а префикс длинного имени класса, который может совпадать с путем к классу. А может и не совпадать.
Да, ты прав. Но по правилам хорошего тона неймспейс должен совпадать с путем к классу. Зачем изначально прививать человеку "неприличные" практики?
Ответы: >>2126988 >>2127764
Аноним 2021/08/13 16:36:35  №2126988 9
>>2126980
Так его же попускать будут на таких вопросах. Пусть знает, как оно внутри устроено
Ответы: >>2126998
Аноним 2021/08/13 16:51:23  №2126998 10
>>2126988
>Так его же попускать будут на таких вопросах.
Современные среды разработки сами за тебя пишут неймспейсы. Программисту об этом не надо думать. Ему за "а я знаю как оно внутри устроено" не доплатят. Ну разве что перед друзьями похвалиться.
Ответы: >>2127012 >>2127778
Аноним 2021/08/14 11:01:39  №2127586 11
Жесть аноны помохите плиз, а то я кукохой поеду.
Я всегда был не в ладах с реактом сам по себе, а тут понадобилось в ларавел запихнуть.
И это ппц, чтобы я не читал и не пробовал у меня ничего не работает.
А сегодня я вообще потерял важный файл с жс скриптом потому что laravel.mix, ебучий вебпак(ссука как же я ненавижу вебпак и еблю с зависимостями фронетнда) просто потер его.

Я делал:
Установил ларавел/ui. Установил реакт, нпм, все зависимости разрешились. перегрузились, ошибок нет. Делаю npx mix watch.

В блейде у меня <script src="/js/app.js"></script>. //реакт
Также <script src="/js/main.js"></script> //мой кастомный скрипт

Делаю import ReactDOM from 'react-dom', затем ReactDOM.render() в main.js - пишет не может использовать вне модуля

Я и в package.json type='module' делал, и в блейде script type='module' делал, и в webpack.mix.js писал mix.js(...main.js) . Когда делаешь все это то это походу костыли и появляется следующая ошибка типа пропишите путь, хотя
предполагаю такого не должно быть вообще когда делаешь импорт реакта
Я просто не понимаю как эта херовина должна работать, может кто объяснить.

А то что файл потерял это в 10 раз обиднее, сука ненавижу вебпак.
Ответы: >>2127612 >>2127769
Аноним 2021/08/14 11:29:24  №2127612 12
>>2127586
Ты херней занимаешься, пытаясь совместить блейд с реактом.
От ларавеля реакту нужна только апишка, из которой он будет фетчить данные.
Никакие ларавел миксы не нужны, т.к. они жестко привязывают фронт к беку.
В идеале у тебя два отдельных приложения, живущих своей жизнью: апи на ларавел и спа на реакте
Ответы: >>2127658 >>2127778
Аноним 2021/08/14 12:10:48  №2127658 13
>>2127612
1)Не раз уже слышу абреввиатуру СПА. Что она значит? Как расшифровывается?
S - service, A-apllication, по логике

2)Спасибо, я понял конечно, но у меня бомбит что все гайды и официальные документации заставляют тебя использовать определенные технологии, а они на самом деле не работают и не нужны, а ты сидишь и ковыряешь в этом гумне часами. Класс.
Я бы все таки хотел понять, просто понять как оно на самом деле должно было работать. Микс контролирует сборку, вебпак и прочая. Все зависимости докачиваются, пакетики встроенные.
Сказано просто добавить script src. Больше ничего не сказано.
Очевидно по логике js-а ты кидаешь import-ы. И раз написано что микс добавил, и все смотрит - какого лешего мой срипт не видит реакт?
Что я делаю не так?

ПС фронтенд приложения куда принято кидать в проекте, в /public?
Ответы: >>2127667 >>2127677
Аноним 2021/08/14 12:24:13  №2127677 14
>>2127658
single page application

Так нужно базу веба знать, а не бросаться грызть гайды, тогда и фундаментальное понимание будет как работает та или иная технология и как их вместе собрать.
А то получается идем по гайду, шаг вправо-влево и наши полномочия всё. Или гайд устарел - тоже пук.

>ПС фронтенд приложения куда принято кидать в проекте, в /public?
В идеале это отдельная репа, которая находится вне репы твоего бекенда.
Как это примерно работает:
Ты вбиваешь урл spa.hui, тебе грузится само spa, которое представляет собой грубо говоря хтмл, жс, цсс, т.е. статика.
Где-то отдельно крутиться бекенд апи, урл которого знает твой спа.
Если спа нужно получить/сохранить данные, он будет обращаться к бекенду. Роутинг происходит на уровне спа.

Наглядный пример - приложение погоды.
Есть некий внешний апи (не твой) weather.com, у которого ты можешь запросить текущую погоду, температуру, влажность, осадки и т.д.
Ты пишешь жс приложение, которое получает от апи погоду и выводит юзеру в браузер.
Ответы: >>2127691 >>2127710
Аноним 2021/08/14 12:34:08  №2127691 15
>>2127677

Классическое приложение: отправляешь запрос на сервер, получаешь страницу с ответом.

Типичное SPA приложение: отправляешь запрос на сервер, получаешь заглушку со спиннером. Ждешь, пока загрузится пара мегабайт яваскрипта, потом ждешь пока она скачает пару мегабайт джейсона с бекенда и только потом, может быть, увидишь результат.

Хотя SPA не обязаны быть медленными, на практике почему-то SPA долго грузятся. То есть, я бы хотел увидеть сразу данные, а не смотреть на заглушку.

Примеры: Сбербанк-онлайн - есть заглушка, загрузка медленная. Твиттер - есть заглушка, загрузка медленная. Ютуб - есть заглушка, загрузка медленная. В твиттере с ютубом работают разработчики мирового класса и все равно тормозит. А у обычного разработчика результат будет в 10 раз хуже.
Ответы: >>2127710
Аноним 2021/08/14 12:45:18  №2127710 16
>>2127677
Да я и спрашиваю поэтому как это работает под капотом, никто не знает.
В свое время, года назад, пытался во фронт, задание тестовое на работку я конечно сделал, но все равно не понял нафига оно нужно(это другой вопрос и тема, срачи вечные, достаточно осказано). Сам факт что я задавал на 3 разных форумах(двач в том числе) про зависимости, пакетирование, ведь это гумно просто так не работает.
В итоге люди сами ничего не знают, просто говорят использовать установщик из коробки - он у меня в общем-то и заработал. А вебпак и лярд других завсимостей я проклинаю по сей день, но люди говорят это норма, щито поделать.

Да, я понял, спасибо, обычное апи, я с такими работаю. Просто у меня проблема с бест практис, я каждый чих выдрочился спрашивать. Типа папка, там фронт, там бек. Я просто не отразил сразу что я не буду прописывать руты вручную. Короче, посмотрю.

>>2127691
Лярд зависимостей. Не нравится мне все это.
Ответы: >>2127720 >>2127778
Аноним 2021/08/14 13:34:41  №2127778 17
>>2127612

Вообще, идея с "фетчить данные" плохая. Если ты взялся за SPA, то логично сразу в страницу заложить все нужные ему данные, чтобы он не делал кучу аякс-запросов при запуске.

>>2126998

> Программисту об этом не надо думать

Ты пишешь ерунду. Если программист не разбирается в неймспейсах, он не сможет их правильно использовать и на выходе может быть будет и синтаксически корректный, но нечитаемый код. IDE может исправить синтаксис за тебя, но она не может сделать твой код правильным.

Программист должен понимать каждый символ в коде, который он пишет.

>>2127710

> В итоге люди сами ничего не знают
Либо ты плохо сформулировал вопрос, либо ты его спрашивал в треде, где сидят одни неучи, которые считают, что "программисту не надо думать".

Даже если никто не может ответить на твой вопрос, что тебе мешает прочесть целиком документацию по вебпаку? Если ответа в документации нет, можно прочесть целиком исходный код вебпака и найти ответ там. Было бы желание.


Ответы: >>2127803
Аноним 2021/08/14 14:10:42  №2127803 18
>>2127778
>фетчить данные плохо
Блин, а я так надеялся что это топовый вариант. Говоришь, костылик?

>что тебе мешает
У человека опыта нет, без практики информация просто не усвоится.
Это как вкатыш пошел учить реакт по гуидам, ему надо сделать просто хелловорд. Просто хелловорд чтобы начать разбираться в штуке, а потом уже как дорога заведет. А вместо чтобы просто потыкать-попробовать нужно ли ему это, его отправляю в пешее эротическое читать непонятно что, бабели какие-то, жсксы. В итоге пришел делать одно, делаешь абсолютно другое - диссонанс.
Немудрено что многие не осиливают.
Да и в принципе это логично. ты делаешь небольшой функционал, он работает, ты доволен что он работает, у тебя есть то, о чего можно отталкиваться, ты начинаешь углубляться, понимая как это работает. А без позитивного опыта ты обречен делать ложные выводы или не делать их вообще, не зная за что зацепиться.