«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:43:52  №2126923 6
Ответы: >>2126925
Аноним 2021/08/13 15:45:13  №2126925 7
Ответы: >>2126930
Аноним 2021/08/13 15:47:14  №2126927 8
Ответы: >>2126966
Аноним 2021/08/13 15:50:06  №2126930 9
Ответы: >>2126931
Аноним 2021/08/13 15:51:26  №2126931 10
>>2126930
я даже не знаю что это
Аноним 2021/08/13 16:14:45  №2126961 11
>>2126898

Обычно код пишут в функциях. И ты вызываешь функцию и передаешь ей нужные переменные. А не пишешь стены кода без разделения на функции.
Аноним 2021/08/13 16:18:31  №2126966 12
>>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 13
>>2126966
>Неймспейс это не путь к классу, а префикс длинного имени класса, который может совпадать с путем к классу. А может и не совпадать.
Да, ты прав. Но по правилам хорошего тона неймспейс должен совпадать с путем к классу. Зачем изначально прививать человеку "неприличные" практики?
Ответы: >>2126988 >>2127764
Аноним 2021/08/13 16:36:35  №2126988 14
>>2126980
Так его же попускать будут на таких вопросах. Пусть знает, как оно внутри устроено
Ответы: >>2126998
Аноним 2021/08/13 16:42:35  №2126995 15
>>2126966
так это типа организация файлов,когда их много?
Ответы: >>2127764
Аноним 2021/08/13 16:51:23  №2126998 16
>>2126988
>Так его же попускать будут на таких вопросах.
Современные среды разработки сами за тебя пишут неймспейсы. Программисту об этом не надо думать. Ему за "а я знаю как оно внутри устроено" не доплатят. Ну разве что перед друзьями похвалиться.
Ответы: >>2127012 >>2127778
Аноним 2021/08/13 16:59:57  №2127012 17
>>2126998
Только собеседующий задаст вопрос и не получив ответ, сделает отметку, что перед ними макака, которую можно попустить по зп
Ответы: >>2127035
Аноним 2021/08/13 17:17:43  №2127035 18
>>2127012
>перед ними макака, которую можно попустить по зп
Новичку в любом случае не дадут высокую зарплату. Если есть шанс попасть в хорошую контору, где работают профессионалы, за еду - это уже праздник. Кроме того от конторы зависит. Да, ты прав, есть такие, что будут и метод пузырька спрашивать, и неймспейсы каноничные, менять две переменные без помощи третьей и прочие олимпийские задачи - то есть все, что в реальности не очень-то и используется/автоматизировано. А потом будут зарплату урезать за то, что скобочку у класса переносишь/не переносишь. Но это скорее неадекваты, и оттуда надо убегать.
А есть конторы, которые не дадут большую зарплату, но где нужны люди чтобы работать вот прямо сейчас. Им как-то не до мелочных придирок.
Ответы: >>2127610
Аноним 2021/08/14 11:26:22  №2127610 19
>>2127035
Ну да, тут еще зависит от того, на какой грейд мы собеседуемся.
Для джуна ценнее получить оффер на любую сумму и достаточно набрать какой-то минимум по очкам, чтобы получить оффер.
К мидл+ критерии жестче
Аноним 2021/08/14 13:19:28  №2127764 20
>>2126980

Я хочу сконцентрировать внимание на том, что неймспейс это не путь к файлу. А лишь часть полного имени класса. Неправильно думать, что use это аналог require из древних скриптов.

>>2126995

Это организация классов, когда их много. До неймспейсов люди давали классам длинные имена и получалось что-то вроде

Zend_Db_Table_Row

Почему имена классов длинные?

- в начале указывается имя фреймворка или библиотеки, чтобы в разных библиотеках не было классов с одинаковым именем. Иначе ты не сможешь в одной программе подключить две библиотеки.
- в середине указываются имена, которые позволяют группировать классы в модули (фреймворк Zend, модуль Db, подмодуль Table, класс Row)

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

$x = new Zend_Db_Table_Row();

С неймспейсами ты пишешь:

use Zend\Db\Table\Row;
$x = new Row();

И, чтобы было проще, путь к файлу выбирают, чтобы он совпадал с полным именем класса.

Ответы: >>2128109
Аноним 2021/08/14 13:34:41  №2127778 21
>>2127612

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

>>2126998

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

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

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

>>2127710

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

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


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

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

Аноним 2021/08/14 19:22:38  №2128109 23
>>2127764
>Я хочу сконцентрировать внимание на том, что неймспейс это не путь к файлу
Твое объяснение только запутает новичка. По правилам хорошего тона там пишется путь. Если новичок будет писать вместо пути набор рандомных символов/папок - это ему не поможет. Поэтому не совсем корректная фраза "там пишется путь" полезней для него, чем твоя пространная демагогия, которая в конечном счете все равно сведется к "там желательно писать путь".
Сейчас ты находишься в довольно затруднительном положении. У тебя достаточно знаний, чтобы помогать новичкам, но все свои силы ты тратишь на то, чтобы придираться к словам и указывать на чужие несущественные ошибки. Это вполне обычно для программистской среды, потому что каждый хороший программист - токсичный самовлюбленный ребенок, который пытается самоутвердиться за чужой счет. Поэтому не забывай, зачем ты здесь. Самолюбование останавливает твое развитие и не помогает другим.
Ответы: >>2131994
Аноним 2021/08/18 14:39:16  №2131994 24
>>2129765

Думаю, требуется именно опыт интеграции какого-то сервиса. Например: сервис приема платежей, сервис геокодирования, служба доставки итд.

>>2128109

Я думаю, что это не придирка к словам. Если неймспейс не является путем к файлу, то надо так и писать, а не пытаться "упрощать", скрывая важные детали. Люди не такие глупые и прекрасно все поймут, если им объяснять и если они хотят понять.