Описание тега php-generators

В PHP 5.5 представлены генераторы и связанные с ними ключевые слова yield. Генератор позволяет выполнять итерацию только вперед без создания массива в памяти и с меньшими затратами времени. Когда объявляется функция с ключевым словом yield, она возвращает класс Generator вместо запуска метода.
1 ответ

PHP генерирует случайные числа, кратные 10 с мин и макс

Я хочу генерировать случайные числа, кратные 10, с минимальными и максимальными условиями. Пример 10, 40, 20, 100, 60. числа между 10 и 100
26 дек '16 в 18:45
0 ответов

PHPUnit - "потоковая" передача данных из dataProvider (непрерывный режим)

Мне нравится использовать PHPUnit в качестве основы для функционального (нечеткого) тестирования. Можно ли заставить PHPUnit запускать тесты один за другим после каждого запроса dataProvider? На данный момент он хочет получить все данные из dataProv…
01 окт '18 в 00:46
1 ответ

Рефакторинг блоков сравнения / операторов для СУХОГО повышения и снижения уровня CRAP

Я решил сделать небольшой проект вокруг множества классов, которые возвращают генераторы (php 5.5). Основной мотивацией для небольшого проекта было расширение моего путешествия по TDD, возиться с генераторами и иметь пакет, который я мог бы скинуть …
18 окт '13 в 21:31
1 ответ

Перебор генераторов с помощью while

Я пишу оболочку PDO для нового проекта. Очень распространенный шаблон для SQL - написать такой оператор, как while ($row = $connection->fetch($sql)) { ... } Моя функция-обертка по сути такова: public function fetch($query, $bindings) { $stmt = $t…
15 мар '16 в 14:39
1 ответ

Эффективный алгоритм PHP для генерации всех комбинаций / перестановок входов

Я пытаюсь вычислить все комбинации набора значений в массиве для количества входов. Похож на этот вопрос: Алгоритм PHP для генерации всех комбинаций определенного размера из одного набора Например: function sampling($chars, $size, $combinations = ar…
14 апр '16 в 02:01
1 ответ

PHP возвращаемый тип генератора

Я никогда раньше не использовал генераторы в PHP, и в документации нет примеров, показывающих декларацию возвращаемого типа. В PhpStorm возникает ошибка в IDE, когда я делаю это: public function getDataIncrementally(): void { yield from [/* some lar…
09 фев '19 в 06:28
2 ответа

Более легкое создание меню зависит от сессии

Я делаю меню для языка веб-сайта, и оно работает, но я думаю, что способ, которым я делаю это, не лучший способ, если я добавлю больше языков в будущем. Может быть, кто-то может показать лучший пример. Вот часть того, что у меня есть. if(isSet($_SES…
01 июл '16 в 16:17
1 ответ

Использование php yield / Generator::send() для "потока вывода данных"

Я знаю, что yield можно использовать для создания итератора данных, например, для чтения данных из файла CSV. function csv_generator($file) { $handle = fopen($file,"r"); while (!feof($handle)) { yield fgetcsv($file); } fclose($file); } Но метод Gene…
02 ноя '16 в 14:59
0 ответов

Где найти журналы запросов Phprunner?

У меня есть проект, созданный Phprunner. некоторые страницы отвечают очень медленно. тогда я подумал, что должен как-то проверить сгенерированные и выполненные запросы. Я попытался поиск через код, и я нашел много функций выполнения. я не знаю, кака…
04 мар '17 в 17:04
0 ответов

Несколько циклов над одним генератором - PHP

Мне нужно зациклить один и тот же генератор на нескольких циклах - я пытался использовать перемотку, если получаю эту ошибку - "Невозможно перемотать генератор, который уже был запущен". $gen = myGenerator(); while ($gen->valid()){ $document = $g…
21 авг '19 в 10:06
0 ответов

Детали ошибки: Неверный ключ "latest_occurrence". Доступные ключи: "логин",

Привет, я новичок в phpgen и post gres, я пытаюсь удалить некоторые таблицы из представления пользовательского интерфейса, созданного phpgen, но когда я это делаю, я получаю сообщение об ошибке: Ошибка: неверный ключ "latest_occurrence". Доступные к…
27 авг '19 в 16:59
1 ответ

Как заменить огромный массив генераторами PHP

Обращаюсь к вам за помощью в преобразовании одного большого массива с помощью генераторов PHP. Ниже приведен мой код, который мне нужно переработать: я получаю набор результатов от вызова службы и назначаю все массиву: foreach ($objects->result a…
27 авг '20 в 12:09
1 ответ

Как узнать, выдает ли генератор по ссылке?

Я программирую общий компонент, который обертывает генератор и выполняет рутинные операции: фильтр по ключу преобразовать значение и т.п. Чтобы максимально точно имитировать обернутый генератор, я хочу использовать ссылки, если генератор использует …
20 авг '20 в 18:44
0 ответов

Как протестировать метод, который возвращает генератор и вызывает пользовательскую функцию при выходе

final class SomeClass implements ArgumentValueResolverInterface { public function supports(Request $request, ArgumentMetadata $argument): bool { //some code here } public function resolve(Request $request, ArgumentMetadata $argument): \Generator { …
24 авг '21 в 11:25
1 ответ

Сгенерировать массив сообщений [закрыто]

У меня есть шаблон сообщения "['Hello!','Hi!', 'Hi there!'] How are you? My name is ['Jason!','Alex!', 'Anthony!']" Таких позиций может быть больше двух. Как программно получить все возможные варианты сообщения с помощью PHP? Нравиться: ["Hello! How…
22 окт '21 в 14:06
0 ответов

Тип возвращаемого генератора

Каким будет правильный возвращаемый тип генератора? Пример: public static function &all_records(): _what_type_ { $obj = new static; for( $obj->findFirst(); $obj->findNext(); yield $obj->{$obj->getPrimaryKey()} => $obj ); } Должен_…
26 ноя '22 в 08:34
0 ответов

Генераторы Laravel: пропустить существующий класс и продолжить вместо возврата False

Поведение по умолчанию для генераторов Laravel заключается в сбое или возврате false, когда файл уже существует, чтобы не перезаписывать его, что имеет смысл при создании одного файла. Я создаю генератор, который создает множество файлов, и мне нужн…
19 мар '23 в 08:37