понедельник, 22 марта 2010 г.

Opera 10.51

Вышла Opera 10.51, исправили баг с логином на blogspot.com :)
Здесь утверждают, что Opera стала ещё быстрее...
Кроме бага с blogspot'ом оказывается были проблемы с авторизацией на facebook.com. Способ решений этой проблемы:
  • Click on the O menu - Settings - Preferences.
  • Click the Advanced Tab.
  • Select Cookies - Manage Cookies.
  • Search for any "Facebook" cookie(s) and delete them.
  • Load www.facebook.com and log in.
  • Success! You should now be logged in as normal.

пятница, 19 марта 2010 г.

CodeIgniter 2.0. В ожидании релиза.

Близится релиз второй версии CodeIgniter'а.


General changes
  • PHP 4 support is deprecated. Features new to 2.0.0 may not support PHP 4, and all legacy features will no longer support PHP 4 as of 2.1.0.
  • Scaffolding, having been deprecated for a number of versions, has been removed.
  • Plugins have been removed, in favor of Helpers. The CAPTCHA plugin has been converted to a Helper and documented. The JavaScript calendar plugin was removed due to the ready availability of great JavaScript calendars, particularly with jQuery.
  • Added new special Library type: Drivers.
  • Added routing overrides to the main index.php file, enabling the normal routing to be overridden on a per "index" file basis.
  • Added the ability to set config values (or override config values) directly from data set in the main index.php file. This allows a single application to be used with multiple front controllers, each having its own config values.
  • Added $config['directory_trigger'] to the config file so that a controller sub-directory can be specified when running _GET strings instead of URI segments.
  • Added ability to set "Package" paths - specific paths where the Loader and Config classes should try to look first for a requested file. This allows distribution of sub-applications with their own libraries, models, config files, etc. in a single "package" directory. See the Loader class documentation for more details.
  • In-development code is now hosted at BitBucket.

  • Added Security library, which now contains the xss_clean function, filename_security function and other security related functions.
  • Added CSRF (Cross-site Reference Forgery) protection to the Security library.
  • Added $parse_exec_vars property to Output library.
  • Added ability to enable / disable individual sections of the Profiler
  • Added a wildcard option $config['allowed_types'] = '*' to the File Uploading Class.
  • Added an 'object' config variable to the XML-RPC Server library so that one can specify the object to look for requested methods, instead of assuming it is in the $CI superobject.
  • Added "is_object" into the list of unit tests capable of being run.
  • Table library will generate an empty cell with a blank string, or NULL value.
  • Added ability to set tag attributes for individual cells in the Table library
  • Added a parse_string() method to the Parser Class.
  • Added HTTP headers and Config information to the Profiler output.
  • Added Chrome and Flock to the list of detectable browsers by browser() in the User Agent Class.
  • The Unit Test Class now has an optional "notes" field available to it, and allows for discrete display of test result items using $this->unit->set_test_items().

  • Added swap_pre value to database configuration.
  • Added autoinit value to database configuration.
  • Added stricton value to database configuration.
  • Added database_exists() to the Database Utilities Class.
  • Semantic change to db->version() function to allow a list of exceptions for databases with functions to return version string instead of specially formed SQL queries. Currently this list only includes Oracle and SQLite.
  • Fixed a bug where driver specific table identifier protection could lead to malformed queries in the field_data() functions.
  • Fixed a bug where an undefined class variable was referenced in database drivers.

  • Added convert_accented_characters() function to text helper.
  • Added accept-charset to the list of inserted attributes of form_open() in the Form Helper.
  • Deprecated the dohash() function in favour of do_hash() for naming consistency.
  • Non-backwards compatible change made to get_dir_file_info() in the File Helper. No longer recurses by default so as to encourage responsible use (this function can cause server performance issues when used without caution).
  • Modified the second parameter of directory_map() in the Directory Helper to accept an integer to specify recursion depth.
  • Modified delete_files() in the File Helper to return FALSE on failure.
  • Added an optional second parameter to byte_format() in the Number Helper to allow for decimal precision.
  • Added alpha, and sha1 string types to random_string() in the String Helper.

Other Changes
  • Updated loader to automatically apply the sub-class prefix as an option when loading classes. Class names can be prefixed with the standard "CI_" or the same prefix as the subclass prefix, or no prefix at all.
  • Increased randomness with is_really_writable() to avoid file collisions when hundreds or thousands of requests occur at once.
  • Switched some DIR_WRITE_MODE constant uses to FILE_WRITE_MODE where files and not directories are being operated on.
  • get_mime_by_extension() is now case insensitive.
  • Added "default" to the list Reserved Names.
  • Added 'application/x-msdownload' for .exe files and ''application/x-gzip-compressed' for .tgz files to config/mimes.php.
  • Documented append_output() in the Output Class.
  • Documented a second argument in the decode() function for the Encryption Class.
  • Documentd db->close().

Bug fixes for 2.0.0

  • Fixed a bug where a failed query would not have a saved query execution time causing errors in the Profiler
  • Fixed a bug that was writing log entries when multiple identical helpers and plugins were loaded.
  • Fixed assorted user guide typos or examples (#10693, #8951, #7825, #8660, #7883, #6771, #10656).
  • Fixed a language key in the profiler: "profiler_no_memory_usage" to "profiler_no_memory".
  • Fixed an error in the Zip library that didn't allow downloading on PHP 4 servers.
  • Fixed a bug in the Form Validation library where fields passed as rule parameters were not being translated (#9132)
  • Modified inflector helper to properly pluralize words that end in 'ch' or 'sh'
  • Fixed a bug in xss_clean() that was not allowing hyphens in query strings of submitted URLs.
  • Fixed bugs in get_dir_file_info() and get_file_info() in the File Helper with recursion, and file paths on Windows.
  • Fixed a bug where Active Record override parameter would not let you disable Active Record if it was enabled in your database config file.
  • Fixed a bug in reduce_double_slashes() in the String Helper to properly remove duplicate leading slashes (#7585)
  • Fixed a bug in values_parsing() of the XML-RPC library which prevented NULL variables typed as 'string' from being handled properly.
  • Fixed a bug were form_open_multipart() didn't accept string attribute arguments (#10930).
  • Fixed a bug (#10470) where get_mime_by_extension() was case sensitive.
  • Fixed a bug where some error messages for the SQLite and Oracle drivers would not display.

вторник, 9 марта 2010 г.

PHP: short_open_tag


short_open_tag – разрешает использование коротких тэгов (<? … ?>) для оформления PHP кода

Из документации...

short_open_tag boolean

Определяет, разрешается ли короткая форма записи (<? ?>) тегов PHP. Если вы хотите использовать PHP в комбинации с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать <?xml ?>. В противном случае, вы можете отобразить это при помощи PHP, например: <?php echo '<?xml version="1.0"'; ?>. Если же эта опция отключена, вы должны использовать длинную форму открывающего тега PHP (<?php ?>).

Замечание: Эта директива также влияет на сокращение <?=, которое идентично записи <? echo. Для использования этого сокращения, директива short_open_tag должна быть включена.

Почему не стоит использовать short_open_tag:

Основные причины:

  • на некоторых серверах не включена директива short_open_tag, и ваши скрипты не будут работать;
  • конфликт с открывающим тэгом XML <?xml...
  • PHP coding standards strongly recommend to use full php open tags

С первой проблемой столкнулся вчера лично. Потрачено несколько часов на выискивание того места в котором проблема.

Под xampp cms не работала, а под denwer'ом всё было нормально. Пришлось ковырять под denwer'ом, но так как мне он не очень нравиться постоянно отвлекали мысли о том где-же всё-таки косяк.

С утра переустановив xampp довольно быстро нашёл в чём же заключалась проблема. Собственно в одной из библиотек приложения был обнаружен короткий открывающий тэг, о существовании которого авторы системы не помнили...

Не удобно, когда над проектом работают несколько человек и нет единого стандарта кодирования. Весьма забавно смотрятся разные методы одного объекта написанные в разных стилях, вот только работать не прикольно, ибо когда один метод setSomeProperty, а другой get_some_prorepty начинается путаница.

Изучаем PHP и MySQL | Мишель Е. Дэвис и Джон А. Филлипс | Learning PHP and MySQLИзучаем PHP и MySQL | Мишель Е. Дэвис и Джон А. Филлипс | Learning PHP and MySQL
PHP. Рецепты программирования | Д. Скляр, А. Трахтенберг | PHP CookbookPHP. Рецепты программирования | Д. Скляр, А. Трахтенберг | PHP Cookbook
PHP и jQuery для профессионалов | Джейсон Ленгсторф | Pro PHP and jQuery | Expert's VoicePHP и jQuery для профессионалов | Джейсон Ленгсторф | Pro PHP and jQuery | Expert's Voice

воскресенье, 7 марта 2010 г.

Kohana:The Swift PHP Framework

К сожалению Zend Framework временно пришлось забросить. Начинаю усиленно ковырять Kohana.

Облегчает ковыряние тот факт, что Kohana выросла из форка CodeIgniter'а.

Из википедии (http://ru.wikipedia.org/wiki/Kohana):
Проект Kohana был создан как ветвь PHP фрэймворка CodeIgniter под именем Blue Flame. Главной причиной форка был переход к более открытой для общественности модели разработки, потому, что многие пользователи были недовольны скоростью разработки и исправления ошибок в CodeIgniter. В Июле 2007, Blue Flame был переименован в Kohana для того, чтобы избежать проблем с авторскими правами в будущем.

Opera 10.50 борьба с неприятностями

Проблема с "подвисаниями" при загрузке решилась удалением с последующий ручной чисткой и переустановкой.

С крашами оперы на блогспоте оказалось по хуже. Выяснил, что они проявляются если залогиниться на блогспот. :(

Будем ждать следующего билда, возможно этот косяк исправят.

четверг, 4 марта 2010 г.

Opera 10.50 неприятные неожиданности

Opera 10.50 Экспресс-панель
Радость от нового релиза омрачила парочка неприятных вещей.
1. Подвисания закачивания или заморозка страниц.
С интервалом в 15-20 минут у Оперы пропадает всяческая сетевая активность. Страницы не закачиваются не обновляются, по ссылка не переходит. Но, сам браузер не зависает, открытые окна, если они не пустые, нормально скроллируются.

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

2. Ещё более весёлое. На моём блоге (http://dev-mark.blogspot.com) опера крашится :(
Как вариант, возможно из-за js скриптов хайлайтера кода.

3. Мелочь, но всё равно раздражает. При закрытии происходит синхронизация и окошко с сообщением о синхронизации может висеть до бесконечности. Кнопка отмены синхронизации не реагирует на события. Помогают только закрытие окна.

P.S. Возможно это последствия скоротечных 2-х RC, так же скоротечно переходящих в релиз :(
Придётся откатиться на 10.10, ибо Опера, у меня, установлена браузером по умолчанию и замены ей пока не нашел (: