Меню сайта |
|
|
Форма входа |
|
|
Поиск |
|
|
Календарь |
« Январь 2025 » | Пн | Вт | Ср | Чт | Пт | Сб | Вс | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|
|
Архив записей |
|
|
Статистика |
Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
|
| | |
|
Сколько не искал, но так и не смог найти внятного объяснения работы класса Exception в PHP. Да и сейчас не все в нем понимаю, но главное, что я понял, что можно вбросить исключение без блока try-catch. И вот как это выглядит:
class MyException extends Exception{
public function __construct($name, $code = 1){
parent::__construct($name, $code);
echo $this->getMessage() .' ' . $this->getLine() . ' '. $this->getFile() . ' '. $this->getCode();
exit;
}
}
if (!isset($lalal)){
throw new MyException('lala2 not executed', 6);
}
Exit в конце исполнения обязателен, иначе пхп вызовет оригинальный Exception и ругнется, что его никто не поймал ;)))
Просмотров:
805
|
Добавил:
websponsory
|
Дата:
17-Фев-2015
|
|
После написания статьи прошло достаточно много времени. И захотелось сделать нечто более универсальное. Для начала надо отделить наш прототип от основного скрипта. Поэтому в основной скрипт пишем: Код Components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getService(Components.interfaces.mozIJSSubScriptLoader) .loadSubScript("file:///c:/path/to/file/name.js?" + Math.random()); В идеале хорошо бы выделить отдельный каталог вроде "c:\scripts" под такие вложения, поскольку ими вполне можно будет пользоваться не один раз. Случайное число прибавляется к имени для того, чтобы ФФ не складировал наш прототип в кеш и нам не требовалось бы каждый раз перезапускать браузер, при малейших изменениях. Пока ничего сложного. Теперь создаем новый файл со следующим содержимым и укладываем его по вызову: Код var fW = function (Name, Path) { if (!(this instanceof fW)) { return new fW(fileName, filePath) } // все равно объект получите!!! var Cc = Components.classes; var Ci = Components.interfaces; this.fileName = Name; this.filePath = Path; this.file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); this.file.initWithPath(this.filePath); this.file.appendRelativePath(this.fileName); };
fW.prototype.readFileAll = function(){ this.stream = Cc["@mozilla.org/network/file-input-stream;1"] .createInstance(Ci.nsIFileInputStream); this.stream.init(this.file,0x01, 00004, null); this.streamSize = Cc["@mozilla.org/scriptableinputstream;1"] .createInstance(Ci.nsIScriptableInputStream); this.streamSize.init(this.stream); return this.streamSize.read( this.streamSize.available() ); } На данный момент наш "классик" состоит из конструктора, который инициализирует основные переменные и одного прототипа функции, которая читает содержимое файла. Полностью. Прототипом мы добиваемся того, что при создании нескольких объектов, с помощью данного конструктора, функции не копируются в сам объект, а остаются в единственном экземпляре, и разделяются нашими объектами. Ну и главное, как же этим всем пользоваться. Все достаточно просто. Вот пример загрузки содержимого файла в переменную: Код var file = new fW("my_file.txt", "c:\\path\\to\\my\\file\\here"); var contents = file.readFileAll(); Мы просто создаем объект. При начальной инициализации переменная file привязывается к нашему файлу. Если потребуется считать из другого файла - надо создать новый объект. Но можно впоследствии создать прототип функции, которая поменяет свойства объекта на требуемые. Это на будущее...
Просмотров:
624
|
Добавил:
websponsory
|
Дата:
18-Ноя-2013
|
|
О чем я постоянно забываю, что Outpost блокирует доступ к внешней сети виртуальных машин, созданных в VirtualBox. Для нормальной работы последних необходимо добавить в "Настройках - Системные правила - Низкоуровневые правила" следующее:
Where the Protocol is IP and protocol type is ICMP, TCP, UDP and Local Address is (*перечисляются локальные адреса виртуальных машин*) Allow It
И все будет работать. Только я постоянно об этом забываю и мучаюсь потом по полтора часа.
Просмотров:
1840
|
Добавил:
websponsory
|
Дата:
11-Ноя-2013
|
|
Вот есть такое во мне. Страшно не люблю огромные простыни кода. И где есть возможность - делю его на отдельные файлы. Вот и для скриптов на iMacros я искал возможность отделить часть функций и прототипов от основного скрипта, дабы не мешались под ногами. Одна проблема - загрузить их потом во время выполнения. Поиск по JS выдает кучу информации, но только связанной с разработкой веб-страниц или плагинов. Но это не сломило меня и я нашел таки решение проблемы. Первым вариантом было нечто очень нагруженное вызовами и... Да что рассказывать, вот оно: Код var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath("c:\\path\\to\\file\\myscript.js"); // <-- имя файла тут var scriptURI = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService).getProtocolHandler("file") .QueryInterface(Components.interfaces.nsIFileProtocolHandler) .getURLSpecFromFile(file); Components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getService(Components.interfaces.mozIJSSubScriptLoader) .loadSubScript(scriptURI); Перебор, но оно работает. Правда потом откопалось более изящное и простое решение: Код Components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getService(Components.interfaces.mozIJSSubScriptLoader) .loadSubScript("file:///c:/path/to/file/myscript.js"); Прошу любить и жаловать. А заодно и пользоваться. Правда осталось еще 2 проблемы, к которым я пока не смог найти решения. Во-первых, это любовь ФФ к кешированию всего и вся. Увы, но малейшие изменение прицепляемого файла требует перезагрузки браузера. Иначе изменение просто не будет учтено. Файл будет получен из кеша... Ну и во-вторых, я пока не смог изнутри скрипта определить папку, из которой он был запущен. То есть, надо пока жестко прописывать пути ко всем файлам. И любое перемещение скрипта требует его правки в области основных настроек. Хотя, если взять за правило в отдельных файлах держать только прототипы, которые используются в 2х и более скриптах, то имеет смысл для них просто завести отдельную папку и ссылаться на нее. К слову, один подобный прототип я опубликую в течении пары дней, в качестве замены несколько устаревшей статьи. В нем будет учтен мой прогресс в изучении JS и... ну и что-то еще. Это точно.
Просмотров:
633
|
Добавил:
websponsory
|
Дата:
09-Ноя-2013
|
|
Из буксовых новостей только полученные бонусы и выплаты. Neobux порадовал бонусом на adprize. Всего полдоллара, но это лучше, чем ничего. Причем не далее как в воскресенье я получил 0,25 в призах. Радует. А заодно заказал выплату. И сразу ее получил: Следующей радостью стал Cash'n'Hits. Выплата пришла как обычно. В полном объеме. Ну и набор на Clixsense за 1 день тоже неплохо выглядит. Всегда бы так.
Просмотров:
487
|
Добавил:
websponsory
|
Дата:
31-Окт-2013
|
|
Регистрируюясь заново в этой системе, не думал, что там что-то сильно поменялось. Но это так. Попытки заработать на нем, которые были полтора года назад, провалились полностью. Но сейчас... За 10 дней было получено: Игра "угадай клетку" кроме обычных неожиданно принесла аж 2 раза подряд А сегодня кроме игры еще и в заданиях появилось что-то стоящее, что дало мне дополнительные центы: И пока это все без премиумов и рефералов. Вполне неплохо получается. Скоро первую выплату получу :)))
Просмотров:
1077
|
Добавил:
websponsory
|
Дата:
20-Окт-2013
|
|
Интересное дело. Периодически сам заползаю в свои раннии статьи за готовым кодом для новых скриптов. Правда их тут больше, чем видно обычному пользователю...
Просмотров:
508
|
Добавил:
websponsory
|
Дата:
07-Окт-2013
|
|
Прошли сутки. Жаль, что не хватило моих сил на большее, но вот результат: Итого имеем 3х арендованных рефералов за 0,60 и 0,863 на счету. Вроде неплохо получилось. Одно огорчает - следующих рефов смогу купить только через неделю. Но надеюсь, что много...
Просмотров:
472
|
Добавил:
websponsory
|
Дата:
04-Окт-2013
|
|
В связи с долгим отсутствием интереса ко всему такому был удален с реобукса. Пришлось делать новую учетную запись. Но я не в обиде. Зато нашел способ, как на нем быстро заработать на первых арендованных рефералов. Вот результат первого дня работы: 97 просмотренных реклам = 0,097 из баланса. Остальное заработано иным способом за один вечер. И это я еще ленился. :)))
Просмотров:
507
|
Добавил:
websponsory
|
Дата:
03-Окт-2013
|
|
Вот даже интересно, будет ли интересен цикл статей для начинающих о том, как создать свой тулбарчик для файрфокса с разными плюшками, блек джеком и другими удовольствиями? Информация вроде не особо заезженная...
Просмотров:
503
|
Добавил:
websponsory
|
Дата:
02-Июн-2013
|
| | |
| | |
|