«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:42:35  №2126995 9
>>2126966
так это типа организация файлов,когда их много?
Ответы: >>2127764
Аноним 2021/08/14 13:19:28  №2127764 10
>>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 19:22:38  №2128109 11
>>2127764
>Я хочу сконцентрировать внимание на том, что неймспейс это не путь к файлу
Твое объяснение только запутает новичка. По правилам хорошего тона там пишется путь. Если новичок будет писать вместо пути набор рандомных символов/папок - это ему не поможет. Поэтому не совсем корректная фраза "там пишется путь" полезней для него, чем твоя пространная демагогия, которая в конечном счете все равно сведется к "там желательно писать путь".
Сейчас ты находишься в довольно затруднительном положении. У тебя достаточно знаний, чтобы помогать новичкам, но все свои силы ты тратишь на то, чтобы придираться к словам и указывать на чужие несущественные ошибки. Это вполне обычно для программистской среды, потому что каждый хороший программист - токсичный самовлюбленный ребенок, который пытается самоутвердиться за чужой счет. Поэтому не забывай, зачем ты здесь. Самолюбование останавливает твое развитие и не помогает другим.
Ответы: >>2131994
Аноним 2021/08/16 14:53:08  №2129765 12
Что обычно подразумевают в вакансиях под "опытом интеграции сторонних сервисов"? Уметь запросик газзлом послать или че?
Ответы: >>2131994
Аноним 2021/08/18 14:39:16  №2131994 13
>>2129765

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

>>2128109

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