2011-05-23

Standard PHP Library (SPL) Exceptions

Как известно, в PHP помимо стандартного класса Exception имеются также и унаследованные от них (собственно SPL-исключения). Иерархию наследования на официальном мануале любезно предоставил Dawid Krysiak. Всем PHP-кодерам советую с ней ознакомиться:
  • Exception
    • LogicException
      • BadFunctionCallException
        • BadMethodCallException
      • DomainException
      • InvalidArgumentException
      • LengthException
      • OutOfRangeException
    • RuntimeException
      • OutOfBoundsException
      • OverflowException
      • RangeException
      • UnderflowException
      • UnexpectedValueException
Кидайте SPL-исключения, наиболее подходящие по контексту причины потенциальной ошибки или неверных входных данных. Этим вы помогаете людям, которые будут в будущем разбираться в вашем коде или использовать его.

2011-05-15

Проблема времени Windows / Ubuntu на одном компьютере


Я думаю, если у вас на разных [разделах] жесткого диска установлены Windows и Ubuntu, вы сталкивались с проблемой, что Ubuntu интерпретирует время BIOS как UTC и учитывает ваш часовой пояс, тем самым выставляя в BIOS время как UTC и отображая его правильно (+7 часов для Новосибирска). Windows, в свою очередь интерпретирует время BIOS'а как локальное и не "мучается" со всякими UTC.

Проблема возникает в случае, когда вы загружаете Windows после Ubuntu. Время получается смещенным на 7 часов назад. Это очень раздражает, не так ли? Очень долго я жил с этим.
Но, оказалось, от этого естественно есть лекарство. Лезем в /etc/default/rcS и меняем опцию UTC на no. Это решает все проблемы, описанные выше.

Приятного всем кодинга на выходных дома! :)