JetBrains Web IDE Public Preview топик-ссылка

JetBrains WebStorm & PhpStorm are two Integrated Development Environments for web programming, providing a unique user experience for editing HTML, CSS, JavaScript, XMl, as well as for working with VCS and SQL. PhpStorm is also a professional PHP IDE offering advanced PHP development support.

PHP: Eclipse или NetBeans?

Проголосовало: 6. Воздержалось: 0

Опроc на сайте с двумя с половиной программистами (образно говоря) нерепрезентативен, но все же.

Ускорение PHP скриптов (для нуба)

Общеизвестный факт, что PHP это такое средство разработки домашних страниц, что совершенно исключает его применение для крупных проектов. Но с годами домашняя страничка выросла, а время на переписывание всего с нуля взять неоткуда. Пришлось изменить название языка и обвешиваться инфраструктурой, чтобы получить какой то компромисс в производительности.


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

Мелочь отладки, а приятно

Знаете, есть же всё же у каждого программиста с опытом свои фишки, свои привычки, свои так сказать маленькие чертики в головах. И порой эти фишки казалось бы маленькие и очевидные, когда ты их знаешь или читаешь, но порой так облегчают жизнь. Предлагаю делиться такими мелкими фишками и не зажимать их от глаз коллег.

Я начну, пока с мелочи, но важной, очень — ОТЛАДКА.

Меня всегда мучила проблема отладки и запуска кода на рабочей (девелоперской) машине и рабочем уже сервере.
Это настройки подключения к базе данных, это другой домен, совершенно не те пути к домашней папке и т.п. Выносить в конфиги, править и править. А когда разработчиков не один или два, у каждого свои данные по базе, свои пути и прочие индивидуальные настройки. Муторно, а мы любим просто, отладил на локальной машине, открыл ftp, залил, вуа-ля — заработало!

Потому моё решение очень простое.
Так как я ставлю на рабочую машину всегда Apache, то просто в корне своего сайта в файле .htaccess создаю строку
SetEnv "MPAKENV" "development"

например так.

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

Пример того же простого конструктора с различными данными подключения

class Mein_Spyder{
	protected function database(){
		return (!empty($_SERVER['MPAKENV'])) ?
			array(
				'login'		=> '{LOGIN_DEV}',
				'psw'		=> '{PAS_DEV}',
				'database'	=> '{DB_DEV}',
				'host'		=> '{HOST_DEV}'
			)
			:
			array(
				'login'		=> '{LOGIN_PROD}',
				'psw'		=> '{PAS_PROD}',
				'database'	=> '{DB_PROD}',
				'host'		=> '{HOST_PROD}'
			);
	}
	public function __construct(){
		$db = $this->database();
		$this->db = new PDO('mysql:host='.$db['host'].';dbname='.$db['database'], $db['login'], $db['psw']);
		$this->db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
		$this->db->setAttribute( PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING );

		$this->db->query('SET NAMES "utf8"');
		$this->db->query("SET sql_mode = default");
	}
...
}


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

В общем, порой «окружение» может нам помочь очень часто, высказывайтесь о своих «фишечках» не стесняйтесь
  • 0
  • 31 января 2010, 16:25
  • MpaK
  • 5

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

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


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

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

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

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

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


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

Очередное тестирование php фреймворков инструментом от facebook топик-ссылка

Сферический конь, но всё же почитать интересно и в плане показа возможностей инструмента тестирования XHprof. Как работает XHprof? XHProf работает по принципу декомпозиции системы на вызовы функций (методов) и построения статистики в разрезе их ресурсопотребления. В результате получаем информацию: количество выделяемой памяти, количество вызовов функций, время исполнения и т.д.

Ресайз изображений

В общем целом, существует два подхода к ресайзу изображений. И оба имеют как плюсы, так и минусы.


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

Мытьё рук или безопасное экранирование данных в моем понимании...

Знаете как обычно происходит работа с данными пользователя в веб-приложении?

Показать форму для пользователя → получить данные → обработать и сохранить (например в БД) → в дальнейшем показать пользователю в нужном виде или в форме редактирования

Просто? Но всё же есть мелкие нюансы и на волне, что в последнее время я столкнулся с тоннами чужого кода и новым шаблонизатором Twig www.twig-project.org/ который желает всё и вся обезопасить перед выводом пользователю, я бы хотел добавить своих 5 копеек в общую копилку размышлений.

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



( Читать дальше )
  • +2
  • 1 декабря 2009, 15:55
  • MpaK
  • 8