Выходит, что сканировать все файлы придется в любом случае?Файлы в папке лежат не физически, а привязаны через (условно) соответствия папка-файл, вышепредставленная последовательность - условное отображение, которое к физическому размещению файлов на диске никакого отношения не имеет. То есть чтобы знать что лежит в папке, программе надо от ОС получить список файлов из данной папки и упорядочить его по какому-то признаку (в вашем случае по имени). Без полного списка это естественно сделать невозможно.
Сначала key = 0 потом 1 потом 2 потом опять 1 О_оЧто вас смущает? Там же 2 цикла, закончился первый, начался второй с новым массивом. Что мешает просмотреть весь массив $aTabs таким же образом - загадка.
а необходимо, я так понимаю, убрать отступ у всех предыдущих.Если внимательно читать задачи
почему то одна строка вылазит из общей структурыто лишней работы можно избежать. Внимательнее надо быть.
а принтер, принтер нет, какой-то стандартный MicrosoftPrint хз что это такоеЭто виртуальный принтер, печать из которого идет в файл, его так же надо настраивать на тот формат "бумаги", который вы задали в mpdf. Ну, или если стоит задача именно на этом конкретном принтере добиться правильного вывода - поменять формат бумаги в mpdf на тот что стоИт в настройках принтера.
Колумб, между прочего, все-таки открыл АмерикуХотя плыл в Индию... Я как раз это имел в виду ))
Если серьёзно, я просто пытаюсь скорректировать направление дискуссии, в интересующую меня сторону.Так я уже спрашивал - в чем затык? Технически препятствий нет, архитектура нестандартная, но кого и когда это останавливало, если есть желание попробовать острых ощущений? ) Как я уже писал - единственный ваш обозначенный плюс -
очень просто вносить изменения - затрагивается только один слой - база данных, и минимальные или вообще никаких изменений на фронте., где заменив "база данных" на "язык бэкенда" вы получите то же самое, только в современной мете...
коенчно скажу - в бизнесе как и в жизни выживает не стабильный (сильнейший), а тот кто лучше приспасабливается (гибкий), адаптируется к изменениям.Стабильность в бизнесе это не продавать всегда одно и то же, а стабильно выдавать результат с предсказуемой точностью, очевидно. Это к вопросу о Всё говорит о том, что нам может быть когда-то капец, а может и нет.. А все словесные выкрутасы вокруг манипулятивных техник и прочего - ну поупражняйтесь, я конкретно написал почему это не выгодно. Вам кажется что это нюансы и надуманные проблемы - ваше дело. Да, я выступаю с позиции "умный дядя говорит", но это обоснованная практикой позиция, я видел как выбранная архитектура влияет на будущее проекта, как тупо не хватает спецов чтобы сдать проект в рамках сроков, как хреново бд ложится в гит/меркуриал/свн, и еще много веселого... Вы можете спокойно проигнорировать все что я говорю и сделать по своему. И вы обязательно в той или иной мере наступите на вышеописанные грабли, которые тут, на берегу, вам кажутся пальмами с финиками, ну или по крайней мере незначительной растительностью на пути к фантастическим перспективам (нет).
Аргументация про карму, или вида "неделай так, потому что так умный дядя говорит"Аргументация была в другом, но вам не понравилось именно то что я рекомендовал не делать фигни. Ну ок, вы раскусили мои хитрые манипуляции, теперь можете продолжить заниматься фигней...
Стабильность - очень так себе аргумент.Ага, владельцу бизнеса это скажите ) Это же не политика, в разработке важно знать что ты получишь на выходе, собственно куча фреймворков это как раз попытка максимально стабилизировать разработку. Если у вас цель - творческий эксперимент, а не продукт, то подход интересный, в ином случае я бы придерживался более классического подхода.
Всем нравоучениям улыбаюсь но не более.А при чем тут нравоучения? Есть, скажем так, здравый смысл, опыт и боль рефакторинга кучи проектов, спроектированных как раз по такому принципу "инновационного подхода", ничего кроме как попробовать отговорить вас от решений, принесущих кучу проблем и мизер профита вам здесь не писали. Ничего из того что можно было бы назвать "нравоучением", вам здесь не написали. Хотите делать по своему - да пожалуйста. Были ли попытки сделать что-то похожее? Да, были. Было ли это профитным - в известных мне случаях однозначно нет. Спор о логике в бд и тут уже несколько раз затрагивался, пока никто ничего толкового на этой идее не построил. По этому советы большинства присутствующих - не беритесь. Чисто из соображений гуманизма.
То, что эта логика написана руками, всего лишь следствие того, что в этом инструменте просто нет нужных механизмов и их приходится писать руками.Не приходится, их пишут в приложении и формируют запросы в бд согласно требуемым данным для БЛ. По вашей же логике в бд не хватает фреймворка на все случаи жизни, а-ля рубирельсы или ларавель. Вопрос - а почему же его нет, если он так нужен? Ответ, думаю, очевиден...
Если пофантазировать и представить, что каскадного удаления или блокировок в БД бы не было, то можно легко дойти до того, что их придётся писать руками. Чем этот кейс отличается?Ничем, просто писали бы эту логику в приложении. Кстати, иногда так и делают, когда консистентность не критична, а приоритет отдается скорости записи/чтения, экономят на внешних ключах при частых вставках и редких удалениях.
Я исследую вопрос в контексте контраргументов, и пока не нашёл, чего то конкретного, чтоб можно было сказать - "смотри если так сделаем, то нам капец, по таким то причинам". Всё говорит о том, что нам может быть когда-то капец, а может и нет.Стабильность и предсказуемость - наше всё ))
Хороший вариант с зоопарком сервисов получения данных (микросервисы, шины, эластик, БД), но этого пока мало, хотя сейчас в проекте только эластика нет.Мало для чего, в чем затык?
С редисом не всё однозначно, есть подозрения, что pg сам себя кэширует лучше.Тут вопрос не в операционном кэше, а в управлении кэшированием на уровне приложения. Через редис/мемкэш можно настраивать конкретное время жизни для конкретных данных. На стороне бд это во первых сложнее, а во вторых - кэш системы позволяет не дергать систему хранения вовсе.
Короче самые лучшие коменты для меня это конкретные юскейсы: типа смотри мы вот сделали и огребли такие-то проблемы, потом переделали вот так и эти проблемы ушли, но появились новые такие-то.В 2005 мы писали что-то типа внебрачного сына ютуба и фейсбука. Наш ДБА во первых уговорил нас на SQL Server, а во вторых, в творческом порыве понастругал хранимок, в которых, надо сказать, очень неплохо разбирался (и разбирается). Так вот, скрестить линукс с SQL S на тот момент не удалось, а сервер от мс с нужным софтом стоил просто запредельных денег. Пока все было на бесплатной тестовой версии можно было терпеть некоторые косяки (по типу своей версии UTF кодировок, типа UCS, не совпадающей в 10 символах с UTF-8 например), вытекающие из такого зоопарка, но когда посчитали что за софт будет выходить сумма сопоставимая с покупкой еще 2 серверов, быстро переползли на мускуль, похерили все хранимки, так как ДБА уже было лень все переносить руками, и написали нормальную логику. В итоге ДБА ушел с проекта чуть позже, так что в любом случае хранимками заниматься было бы некому, нам просто повезло что это произошло само собой, а не внезапно по уходу спеца. Вот такой кейс был...