Страница 1 из 1

CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 11 мар 2010, 20:43
medar
Ellislab перешли с SVN на Mercurial и выложили на bitbucket версию 2.0.0 : http://bitbucket.org/ellislab/codeigniter/

Changelog:

* General changes
o 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.
o Scaffolding, having been deprecated for a number of versions, has been removed.
o 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.
o Added new special Library type: Drivers.
o Added routing overrides to the main index.php file, enabling the normal routing to be overridden on a per "index" file basis.
o 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.
o 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.
o 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.
o In-development code is now hosted at BitBucket.

* Libraries
o Added Security library, which now contains the xss_clean function, filename_security function and other security related functions.
o Added CSRF (Cross-site Reference Forgery) protection to the Security library.
o Added $parse_exec_vars property to Output library.
o Added ability to enable / disable individual sections of the Profiler
o Added a wildcard option $config['allowed_types'] = '*' to the File Uploading Class.
o 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.
o Added "is_object" into the list of unit tests capable of being run.
o Table library will generate an empty cell with a blank string, or NULL value.
o Added ability to set tag attributes for individual cells in the Table library
o Added a parse_string() method to the Parser Class.
o Added HTTP headers and Config information to the Profiler output.
o Added Chrome and Flock to the list of detectable browsers by browser() in the User Agent Class.
o 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().

* Database
o Added swap_pre value to database configuration.
o Added autoinit value to database configuration.
o Added stricton value to database configuration.
o Added database_exists() to the Database Utilities Class.
o 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.
o Fixed a bug where driver specific table identifier protection could lead to malformed queries in the field_data() functions.
o Fixed a bug where an undefined class variable was referenced in database drivers.

* Helpers
o Added convert_accented_characters() function to text helper.
o Added accept-charset to the list of inserted attributes of form_open() in the Form Helper.
o Deprecated the dohash() function in favour of do_hash() for naming consistency.
o 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).
o Modified the second parameter of directory_map() in the Directory Helper to accept an integer to specify recursion depth.
o Modified delete_files() in the File Helper to return FALSE on failure.
o Added an optional second parameter to byte_format() in the Number Helper to allow for decimal precision.
o Added alpha, and sha1 string types to random_string() in the String Helper.

* Other Changes
o 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.
o Increased randomness with is_really_writable() to avoid file collisions when hundreds or thousands of requests occur at once.
o Switched some DIR_WRITE_MODE constant uses to FILE_WRITE_MODE where files and not directories are being operated on.
o get_mime_by_extension() is now case insensitive.
o Added "default" to the list Reserved Names.
o Added 'application/x-msdownload' for .exe files and ''application/x-gzip-compressed' for .tgz files to config/mimes.php.
o Documented append_output() in the Output Class.
o Documented a second argument in the decode() function for the Encryption Class.
o 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.

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 12 мар 2010, 15:06
jett
Ну вроде php4 отсох, это радует. А вот обновить проекты до этой версии, интересно, можно?

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 12 мар 2010, 18:55
medar
Наверняка можно, когда 2.0 окончательно зарелизят, будет how-to по переходу.

Самое главное - plugins больше в CI не будет, их упраздняют. Как теперь сторонние классы подключать будем ? :)

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 12 мар 2010, 19:16
michail1982
medar писал(а):Наверняка можно, когда 2.0 окончательно зарелизят, будет how-to по переходу.

Самое главное - plugins больше в CI не будет, их упраздняют. Как теперь сторонние классы подключать будем ? :)

как хелперы например.... и кидать их надо будет в third_party

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 13 мар 2010, 13:52
snake.nf
medar писал(а):Наверняка можно, когда 2.0 окончательно зарелизят, будет how-to по переходу.

Самое главное - plugins больше в CI не будет, их упраздняют. Как теперь сторонние классы подключать будем ? :)


Из документации:
Плагины работают практически идентично хелперам. Главное отличие заключается в том, что плагин — это одна функция, в то время как хелпер — это их набор. Хелперы так же считаются частью ядра системы; плагины должны быть работоспособными сразу для нескольких систем.


Хэлперы остались как и были. Зачем плодить лишние сущности.

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 13 мар 2010, 16:13
medar
Что такое Drivers:
Drivers are a special type of Library that has a parent class and any number of potential child classes. Child classes have access to the parent class, but not their siblings. Drivers provide an elegant syntax in your controllers for libraries that benefit from or require being broken down into discrete classes.


И, имхо, самая бомба второй версии - это папка third_party. Туда можно класть модули со своими хелперами, моделями и т.п. - т.е. это то, что сейчас называется HMVC.

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 13 мар 2010, 16:30
bvn
А я вот вообще не понимаю, нафига плодить разные сущности: хэлперы, плагины, библиотеки - было бы все одним и тем же, скажем библиотеками... Если не классы, то лучше сделать статическими классами, ИМХО. А при загрузке надо обязательно дать возможность выбирать хотите ли вы инстанцировать объект и влепить его в $this так сказать, или нужно просто подгрузить описание класса... Это один из самых огромных недостатков CI, на мой взгляд.

medar писал(а):Что такое Drivers:
Drivers are a special type of Library that has a parent class and any number of potential child classes. Child classes have access to the parent class, but not their siblings. Drivers provide an elegant syntax in your controllers for libraries that benefit from or require being broken down into discrete classes.


И, имхо, самая бомба второй версии - это папка third_party. Туда можно класть модули со своими хелперами, моделями и т.п. - т.е. это то, что сейчас называется HMVC.


Опять же, нафига было выдумывать что-то иное... люди привыкли уже к modules... Ну, да ладно, название каталога - это мелочи, лишь бы суть была функциональной... может я еще и передумаю на Кохану перебираться, все равно не хватает времени с ней до конца разобраться...
Да и автолоадера не хватает, ОРМа (хотя не критично) и скаффолдинга нормального, чтобы YAML парсил...
А так CI почти супер :)

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 13 мар 2010, 17:34
Tovit
bvn писал(а):... А при загрузке надо обязательно дать возможность выбирать хотите ли вы инстанцировать объект и влепить его в $this так сказать, или нужно просто подгрузить описание класса... Это один из самых огромных недостатков CI, на мой взгляд. ...


Код: Выделить всё

load_class
($class_namefalse); //загрузит класс с учетом префикса из библиотек и не создаст объект.
 

Только теперь Вам нужно заботиться о том, есть ли префикс у класса и какой он.

А автолоадер -- допишите сами. 20 строк кода и все довольны. Я думаю, авторы CI не полные кретины если не делают его. У них есть свое четкое виденье того КАК это должно работать.

----------------------------------
А теперь краткая речь к сообществу)).

Фреймверк -- только инструмент. Вы всегда вольны взять и переделать даже его ядро, главное, что бы Вы понимали для чего Вам это нужно и КАК это сделать правильно.

Если что-то не нравится в CI -- то выбор велик, от полного отказа, до расширения тем же ZF или классами другого фреймверка. В ZF, например, отличный автолоадер. Многие давно используют с CI кеширование из ZF. Странно, но никто не жалуется на отсутствие похожего класса в CI. Наверно потому что понимают, что CI это лишь базовый фреймверк, в какой-то мере даже для начинающих и сделан он не для корпоративных проектов, по крайней мере для них его нужно очень сильно допиливать напильником. А авторы не гоняться изобрести велосипед с нуля, они понимают, что лучше оставить разработчикам часть реализации необходимых вещей.

Не стоит зацикливаться только на CI. Мне очень нравиться этот фреймверк, хоть я давно уже при начале нового проекта первым делом складываю в папочку приложения набор своих доработок и расширений и этот набор постоянно растет, некоторые библиотеки ядра уже полностью заменены моим кодом (возможно не на 100% моим, но существенно переработанным мною).

Сейчас я хочу обратить внимание на другие фреймверки... CI -- опаздывает в развитии, примерно на год, а то и два. Это логично, его авторы работают над разработкой коммерческой CMS, им не выгодно выкидывать в OpenSource все самое новое.

На этом форуме очень много ленивых новичков, которые убеждены что за них ВСЕ должен делать фреймверк. Тогда я бы им посоветовал ZendFramework -- там такое огромное наследие различных классов, что действительно можно собрать любое приложение просто подключив в нужных местах нужные классы.

То что решено добавить в CI 2.0 лично для меня это уже акт отчаяния, т.к. давно понятно, что фреймверк сильно потерял в позициях (впрочем не сильно и высоко он был), отстал от современного стиля программирования. Лично меня сильно улыбает собственный класс для тестирования кода -- если программист дорос до тестирования своего кода, то уж лучше его подталкивать на стандарт де-факто -- PHPUnit. Идейный вдохновитель Symphony признал наконец, что со своим lime он просто изобретал ненужный велосипед.

Лично я ждал от CI 2.0 революции, отказа от текущей архитектуры, сразу и категоричный отказ от php4, пространства имен...

З.Ы. Уж извините за "многа букав"... как-то поднадоело читать в разных темах одни и те же жалобы.

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 13 мар 2010, 17:55
bvn
Tovit писал(а):
Код: Выделить всё

load_class
($class_name, false); //загрузит класс с учетом префикса из библиотек и не создаст объект.
 

Только теперь Вам нужно заботиться о том, есть ли префикс у класса и какой он.

Да, забываю об этом все время... но и не помню, однажды меня почему-то оно не устроило... не помню... Вобщем, спасибо за напоминание, попробую следующий раз, когда возникнет необходимость, заюзать...
А автолоадер -- допишите сами. 20 строк кода и все довольны. Я думаю, авторы CI не полные кретины если не делают его. У них есть свое четкое виденье того КАК это должно работать.
...
З.Ы. Уж извините за "многа букав"... как-то поднадоело читать в разных темах одни и те же жалобы.

Да, нет. Вы меня не так поняли. Какие жалобы? Просто высказал свое видение. А дописывать допишем, все что надо, когда я буду уверен, что CI - это мой любимый фреймворк... Пока идет поиск... выбор, так сказать... Критерии субъективны, конечно, и конечно авторы CI, имеют право на свое виденье, а я имею право на свое. И право его высказывать в слух. Да?
На этом форуме очень много ленивых новичков, которые убеждены что за них ВСЕ должен делать фреймверк. Тогда я бы им посоветовал ZendFramework -- там такое огромное наследие различных классов, что действительно можно собрать любое приложение просто подключив в нужных местах нужные классы.

Речь в целом понравилась :) А вот с этим абзацем не совсем согласен. Новичков отсылать к ZF - это слишком уж жостко. В том-то и дело, что ленивым новичкам нравится, когда фреймворк уже что-то за них делает, хотя бы задает структуру проекта... А в ZF до недавнего времени (пока не появлися скаффолдинг) это был настолько сложный и запутанный набор кирпичей, что новичку было весьма затруднительно слепить из них что-то более-менее фунциклирующее... по-крайней мере, у меня не получилось, поэтому и другим новичкам советую начинать с CI, как раз, хотя бы потому, что он в разы проще и у него исключительно хорошая документация + перевод на русский язык.

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 13 мар 2010, 20:32
Sam Dark
В ZF, например, отличный автолоадер.

Шутим?

Re: CodeIgniter 2.0 доступен для скачивания

СообщениеДобавлено: 15 мар 2010, 15:08
vladname
посмотрел код. отличий от 1.7.2 пока очень мало. Имхо, к концу года вполне смогут релизнуть...
в инетах писали, мол, ЕЕ2 будет основан на коде CI. где-то слукавили, ведь ЕЕ2 почти готов в отличие от.
тем не менее, удачи проекту и быстрого релиза!