22 июня 2010

Красивые адреса - изобретаем велосипед, опираясь на современные тенденции

Реализация красивых адресов сайта обычно выглядит так: добавляем в таблицу уникальное поле path, которое будет хранить валидный адрес, а потом делаем по нему выборку.

Минусы очевидны:
1) SELECT по текстовому полю.
2) В случае нескольких баз данных мы не можем предположить какая из них содержит нужную нам запись.
3) Дополнительное идентификационное поле в то время, как уже есть основное, обычно, ID.



Читать далее →
php, cms
0
04 июня 2010

PHP-программист, от 25 000 рублей, полный рабочий день топик-ссылка

Разработка‚ программирование‚ доработка сайта‚ написание технических заданий. Отличные знания PHP‚ PostgreSQL‚ MySQL и понимание XML‚ HTML‚ CSS‚ JavaScript‚ AJAX.
0
06 апреля 2010

Два программиста в ООО «РН-УфаНИПИнефть» топик-ссылка

PHP/MySQL/верстка. Подробнее по ссылке. 15-18 т.р. Мопед не мой.
+1
21 марта 2010

Взаимодействие Silverlight приложения с PHP

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

Итак, опишем задачу. Silverlight приложение позволяет вводить текст и отсылать его на сервер, где эти данные обрабатываются PHP скриптом — вычисляется MD5 хеш, который отсылается клиенту, полученные данные отображаются в ТеxtBox.

Примечание: В Silverlight 4 RC функций по вычислению MD5 хеша все еще нет, хотя при непродолжительном поиске можно найти готовые классы.


Читать далее →
+2
17 февраля 2010

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, ide
0
11 февраля 2010

PHP: Eclipse или NetBeans?

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

Опроc на сайте с двумя с половиной программистами (образно говоря) нерепрезентативен, но все же.
IDE, PHP
+1
09 февраля 2010

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

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


Читать далее →
+3
31 января 2010

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

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

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

Меня всегда мучила проблема отладки и запуска кода на рабочей (девелоперской) машине и рабочем уже сервере.
Это настройки подключения к базе данных, это другой домен, совершенно не те пути к домашней папке и т.п. Выносить в конфиги, править и править. А когда разработчиков не один или два, у каждого свои данные по базе, свои пути и прочие индивидуальные настройки. Муторно, а мы любим просто, отладил на локальной машине, открыл 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
30 декабря 2009

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

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


Читать далее →
0
19 декабря 2009

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

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

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

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


Читать далее →
+1
18 декабря 2009

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

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

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

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


Читать далее →
0
01 декабря 2009

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

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

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

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

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



Читать далее →
+2