Рейтинг
+1.19
голосов:
1
avatar

Программирование  

CodeIgniter + HMVC маленький багфикс

Знаете, есть маленькая неприятность обнаруженная совсем не вовремя.

В общих чертах у последнего CodeIgniter 1.7.2 загруженного из SVN и HMVC библиотеки для модульности (вы же надеюсь её используете если работаете с CI?) при РУЧНОЙ загрузки и подключении к базе данных есть баг, просто не грузится класс и не создается подключение.

Как показало «расследование» с пристрастием, ошибку содержит именно HMVC.

Давайте исправим. Открываем наш файл Controller.php из папки application/libraries нашего приложения. находим
public function database($params = '', $return = FALSE, $active_record = FALSE) {

и правим на
public function database($params = '', $return = FALSE, $active_record = <b>NULL</b>) {


можно было бы сохранить и всё бы заработало, но всё же код лишний присутствует и пугает своей бредовой старостью и неуважением к типам

дальше уничтожаем строку

if (class_exists('CI_DB', FALSE) AND $return == FALSE AND $active_record == FALSE)
    return;


и заменяем на вот эти две строки

$CI =& get_instance();
if (class_exists('CI_DB', TRUE) AND ($return === FALSE) AND ($active_record === NULL) AND isset($CI->db) AND is_object($CI->db)) return FALSE;


Всё, можно смело запускать и радоваться загружая свои любимые профили баз как захочется
$this->load->database( 'production' );

Как удалить из строки все буквы кроме некоторых?

Иногда возникает задача удалить из строки все символы кроме некоторых. На мой взгляд для этой задачи регулярные выражения в самый раз задуманы.
для Oracle
select regexp_replace('АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя','[^кя]','',1,0,'i') from dual;

Для углубления в тему регулярных выражений в Oracle следует почитать это.

для C#

Regex r = new Regex("[^кя]*",RegexOptions.IgnoreCase);
Console.WriteLine(r.Replace("АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя", ""));

Для .Net кодеров полезно прочитать — Регулярные выражения в .NET Framework

Как получить имя колонки таблицы на которую мапится свойство NHibernate класса?

How to Get Field's Name from property?

Понадобилось мне получить в runtime имя колонки таблицы на которую мапится NHibernate объект. Вот и наваял хелпер для этого.

public class NHibernateHelper
    {
        private ISessionFactory _factory;
        /// <summary>
        /// Конструктор
        /// </summary>
        /// <param name="factory"></param>
        public NHibernateHelper(ISessionFactory factory)
        {
            if (factory == null) throw new ArgumentNullException("factory");
            _factory = factory;
        }

        /// <summary>
        /// Метод возвращает название колонки таблицы на которую мапится свойство
        /// </summary>
        /// <typeparam name="T">NHibernate класс</typeparam>
        /// <param name="propertyName">Имя свойства</param>
        /// <returns>Имя колонки таблицы</returns>
        public string TableColumn<T>(string propertyName) where T: class
        {
            SingleTableEntityPersister persister = (SingleTableEntityPersister)_factory.GetClassMetadata(typeof(T)); ;
            return persister.GetPropertyColumnNames(propertyName)[0];
        }
    }


Пример использования

Helpers.NHibernateHelper entityHelper = new Helpers.NHibernateHelper(Domain.SessionFactory);
entityHelper.TableColumn<DocumentType>("FormatSerNum");

PDO и маленькая проблема placeholder'а и мнимых типов в PHP

В целом, как-то неожиданно и совершенно не вовремя всплыла у меня проблема на пару часов, которые пришлось отвлекаться и разбираться с непонятной «фигней».


( Читать дальше )
  • 0
  • 30 декабря 2009, 00:41
  • MpaK
  • 2+2

Получение GEO данных по IP на Drupal 6.х

В продолжении статьи «Получение GEO данных по IP» камрада МраКа, напишу как это делается в Drupal 6.x
В небольшом стартапе http://www.smstariff.ru было необходимо сделать так, чтобы страна была выбрана сразу.

( Читать дальше )

Получени GEO данных по IP

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

Конечно можно решать разными способами, загрузить себе базу с кучей ip данных и получать из неё, быстро и удобно, но проблема, что придётся заниматься поддержанием базы в актуальном состоянии. Я как человек ленивый, хотел бы упростить задачу и нашел веб-сервис, который отдаёт по запросу на ip адрес данные в 2х форматах, JSON и XML. Так как JSON мне как-то ближе и проще, то был набросан быстро класс старающийся как бы тише и спокойно отдать мне информацию по IP.

Класс и короткий пример прилагаю, юзайте на здоровье так сказать.


( Читать дальше )
  • +1
  • 19 декабря 2009, 13:51
  • MpaK
  • 4+4

Приколюхи-коротышки

Две забавки по языкам, недавно прикалывались на одном, местном форуме, наверное это победители по короткости выполняемые исходники не в консоли так сказать…


( Читать дальше )

Определение нажатия комбинации клавиш средствами BIOS на ассемблере

По учебе понадобилось написать программу на ассемблере, которая должна
распознать нажатие «горячей» комбинации клавиш LeftCtrl+RightShift+F3
и реагировать на него звуковым сигналом. Информации/примеров по этой теме маловато,
по этому решил опубликовать свою программку.


( Читать дальше )