Lander, так в том то и дело, что обнаружив закрывающую скобку и кликнув по ней, сразу подсвечивается соответствующая открывающая скобка. А с альтернативным синтаксисом нужно только на отступы, выходит, смотреть, и если конструкция довольно большая и их еще несколько и они вложенные, то это усложняет обнаружение необходимой конструкции.
То, что понятно какой блок закрывается (if или foreach), тут тоже согласен - удобнее. Но если код занимает больше одного "экрана" и там, допустим, несколько однотипных конструкций, то искать по отсупам соответствующую конструкцию куда сложнее, чем просто подсветить скобки.
Может есть примеры крупных проектов, фреймворков например, где не используется шаблонизатор и используется альтернативный синтаксис php?
Более читабельно - согласен. Но неужели только из-за этого. Ведь подсветка скобок в редакторах сводит на нет это преимущество, особенно если много верстки внутри конструкции.
@Александр, да, именно так задача и решается (я про последнюю ф-ию), но, вероятно, есть возможность узнать последний вызываемый метод прямо из самого метода? Это вопрос скорее на интерес.
Решение пока представляю такое (объясню на примере выше):
Необходимо составить систему уравнений. У нас всего 3 неизвестных, соответственно должно быть 3 уравнения. Одно уравнение уже есть - это 2 * |F2(x1) - F1(x2)| = |F1(x2) - F2(x3)|. Для того чтобы система была полной, нужно добавить еще 2 уравнения. Их буду итерационно подбирать. Т.е. для нашего примера, А должно быть в 2 раза меньше Б. Соответственно, в одной системе ур-ий А=1, Б=2. Далее подбираю значиния, где А=2, Б=4; А=3, Б=6 и т.д.
Если есть более оптимальный способ решения, буду рад услышать
MechanicZelenyy, отрезков (А, Б...) может быть сотня. И зависимости между ними могут быть самыми разными. Если находить их наилучшим способом, то на ум приходит только полный перебор, а это огромное количество итераций.
Почему ломанность никак не мешает? ф-ия получится кусочной и как тогда решить эту задачу?
В задаче необходимо построить несколько функций и затем решить систему уравнений.
Пример:
По точкам получили две функции. Необходимо найти такие точки, чтобы 2 * |F2(x1) - F1(x2)| = |F1(x2) - F2(x3)|
Сплайны тоже не совсем подходят, т.к. мы получаем множество кусочных функций. А мне в задаче, после получения ф-ии, необходимо ее анализировать, а осуществить необходимый анализ можно только используя 1у "целую" функцию
Да, для небольших наборов данных подходит и конкретно для этого примера. Но в mysql, например, максимально возможное кол-во join = 61. А в задаче путь может составляться от 2 до нескольких сотен расстояний между объектами. Т.е., если для приведенного примера, путь состоял из двух расстояний между объектами и необходимо использовать минимум 2 join, то лимит в 61 join для пути из 100 расстояний будет явно превышен.
PrAw, в этом случае нужно будет либо брать всю выборку в память, что невозможно, либо делать несколько более мелких запросов в цикле и уже по отдельности анализировать, но более мелкие выборки также нужно будет анализировать друг с другом, а значит хранить где-то в памяти. Извернуться конечно можно, но скрипт будет отрабатывать слишком долго, поэтому и хочу решить задачу, используя СУБД.
PrAw, как раз изначально мне нужно получить декартово произведение, а потом уже анализировать полученные данные. Начальный запрос следующий select * from a join a as a2 ON a.id < a2.id.
В задаче необходимо сначала получить разницу между значением записей. Т.е. для каждой записи получить разницу со всеми остальными записями. И в дальнейшем эти разницы анализировать.
Начальных записей, которые анализируются, может быть миллион, а после первого join их будет чуть меньше триллиона.
Эти способы позволяют добавлять только 1 компонент, но я могу кликнуть по кнопке несколько раз и должно добавиться соответствующее количество компонентов.
MaxKorz,
1) Речь идет о angularjs 1.6.6
2) Кода там очень много и он отличается от описанного в задаче. Я специально упростил описание, чтобы понятней была суть вопроса.
Для рисования в canvas я использую библиотеку jCanvas. Там можно к отдельным нарисованным элементам прикрепить события, например, клик по квадрату. Мне необходимо, чтобы при клике по квадрату, допустим, всплывало окошко с данными, которые соответствуют данному квадрату из модели angular. Т.е., например, если кликаем по 3ему квадрату в canvas, то во всплывающем окошке, показываются данные объекта c с индексом 2 массива, который хранится в модели angular.