Как FireFox работает? Обход исходного кода через?

Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_ENCAPSED_AND_WHITESPACE

Эта ошибка чаще всего встречается при попытке ссылаться на значение массива с помощью ключевого слова для интерполяции внутри строки с двумя кавычками , когда вся конструкция комплексной переменной не заключена в {}.

Случай ошибки:

Это приведет к Unexpected T_ENCAPSED_AND_WHITESPACE:

echo "This is a double-quoted string with a quoted array key in $array['key']";
//---------------------------------------------------------------------^^^^^

Возможные исправления:

В строке с двойными кавычками PHP разрешает использовать строки ключей ключей без кавычек и не выдаст E_NOTICE. Таким образом, вышесказанное может быть записано как:

echo "This is a double-quoted string with an un-quoted array key in $array[key]";
//------------------------------------------------------------------------^^^^^

Вся сложная переменная массива и ключ (ы) могут быть заключены в {}, и в этом случае они должны быть указаны чтобы избежать E_NOTICE. Документация PHP рекомендует этот синтаксис для сложных переменных.

echo "This is a double-quoted string with a quoted array key in {$array['key']}";
//--------------------------------------------------------------^^^^^^^^^^^^^^^
// Or a complex array property of an object:
echo "This is a a double-quoted string with a complex {$object->property->array['key']}";

Конечно, альтернатива любой из вышеперечисленного заключается в объединении переменной массива in вместо интерполировать его:

echo "This is a double-quoted string with an array variable " . $array['key'] . " concatenated inside.";
//----------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^

Для справки см. раздел «Переменная синтаксический анализ» в странице руководства PHP Strings

40
задан Frank V 13 January 2017 в 18:55
поделиться

4 ответа

Колледжу Seneca в Торонто приспособили программу к точно этому - новички к разработке Mozilla.

Выезд некоторые из этих ссылок:

осень 2008 года Mozilla

Реального мира Еженедельное Расписание

Некоторые лаборатории, если Вы хотите погрузиться прямо в:

Лаборатория: Изучение Совместной Разработки (Осень 2008 года)

Лаборатория: Создание Проектов С открытым исходным кодом (Осень 2008 года)

Лаборатория: Реальный мир Mozilla - Исходный код, Читая

Лаборатория: Работа с Патчами

Лаборатория: Погружение в Mozilla - Отладка лаборатории Mozilla

: Исправление ошибки Thunderbird

Лаборатория: Изменение Браузера

Лаборатория: Изменение Firefox с помощью расширения

Лаборатория: Реальный мир Mozilla - Первый Компонент XPCOM

Лаборатория: Реальный мир Mozilla - Добавляющий хром к первому компоненту XPCOM

, Если Вы нуждаетесь в какой-либо помощи, используйте IRC: #seneca на irc.mozilla.org. Не волнуйтесь, не являетесь ли Вы (Seneca) студентом, много людей во всем мире (люди от Seneca, люди от Mozilla и другие) находится в этом канале, цель состоит в том, чтобы рассказать разработчикам об открытом исходном коде в целом и проекте Mozilla конкретно.

Удачи!

36
ответ дан Jesse Buchanan 27 November 2019 в 01:37
поделиться

Вот нисходящий ответ (большинство других является восходящим):

Firefox приложение XUL (см. также: XUL); XUL является вариантом XML, используемой для описания GUI, который интерпретируется рендерером, почти такой же способ, которым HTML представляется в браузере, но XUL включает меню браузера, кнопки, строку состояния, сочетания клавиш, и т.д. Это довольно аккуратно; я был в состоянии соединить некоторые простые приложения для GUI намного быстрее в XUL, чем в других платформах (и это платформенно независимо!).

, Если Вы смотрите в каталоге приложения Firefox (везде, где Вы установили его в своей системе), Вы будете видеть "хромовый" каталог с набором .jar файлов. Это просто .zip файлы с конкретной структурой (включая декларацию), и можно просмотреть их сами.

Большая часть браузера Firefox является на самом деле XUL + JavaScript. Это действительно использует много библиотек низшего уровня, записанных в C++ и доступных для JavaScript через XPCOM, но если Вы хотите понять (& измените), высокоуровневое поведение, части XUL+Javascript являются, вероятно, местом для запуска.

редактирование: p.s. здесь являются некоторыми учебными руководствами/ссылками для XUL: 1 2 и также книжное

редактирование O'Reilly: документы XUL очень похожи на документы HTML (только больше!) в пути они взаимодействуют с пользователем + события. Существует модель документа для динамично изменение XUL, и существует модели событий , которые имеют слушателей события. Оба действия точно так же, как HTML + DOM + его модель событий, но с более богатым набором встроенных объектов/интерфейсов/событий/и т.д. Обработчики событий являются интерфейсами конкретного вида и могут быть реализованы объектами JavaScript (объявленный в XUL с onclick="blah()", или добавил динамично через вызовы JavaScript к addEventListener() - оба - точно тот же синтаксис как события HTML в Firefox), или C++ или другими языками, которые могут реализовать объекты XPCOM с надлежащими интерфейсами.

30
ответ дан Jskud 27 November 2019 в 01:37
поделиться

Один способ запуститься состоял бы в том, чтобы посмотреть на некоторые недавно исправленные ошибки в Firefox (см. Bugzilla), и смотрите на то, как они были зафиксированы.

, Который сказал. Кодовая база Firefox является очень большой, и вероятно, что никакой человек не понимает все это, таким образом, это была бы хорошая идея начаться с маленьким разделом (скажите избранное), и попытайтесь найти код для него и посмотреть на то, как это работает. Снова, разрешенные ошибки и файлы, на которые они влияют, были бы хорошим способом определить некоторые соответствующие нормы для запуска с.

5
ответ дан Yuliy 27 November 2019 в 01:37
поделиться

я работал с кодом Mozilla (точно mozilla/nss/security). насколько мое понимание Mozilla идет:

Это следует за многоуровневой архитектурой с уровнем NSPR (Netscape Портативное Время выполнения) в нижней части, которая взаимодействует с Операционными системами.

получают исходный код от
https://developer.mozilla.org/En/Download_Mozilla_Source_Code и создают его в Вашей рабочей среде (насколько я знаю, что это поддерживает большое разнообразие платформ/архитектуры)

соединение, которому сообщество разработчиков Mozilla / пытается помочь посредством тестирования некоторых компонентов.

для кодирования для Mozilla пройдите: http://www.mozilla.org/hacking/ (стандарты мобильности C++ необходимость, если Вы - программист на C++).

надежда часть вышеупомянутого могла бы помочь Вам начало работы.

2
ответ дан FL4SOF 27 November 2019 в 01:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: