• Использование тернарного оператора ?: с подавлением ошибки?

    Это не нормально. К E_NOTICE следует относиться как к настоящей ошибке.
    Ответ написан
    7 комментариев
  • PHP+PDO Mysql, не выполняются query после exec с несколькими запросами внутри?

    Я бы предпочёл юзать PDOStatement в любом случае.

    $sth = $db->prepare($sql);
    $sth->execute($params);
    $sth->closeCursor();
    Ответ написан
    Комментировать
  • Первые шаги в PHP, имет ли смысл начинать с MVC?

    Я бы рекомендовал начать изучение сразу с PHP 5.4/5.5, чтобы пользоваться и namespaces, и closures, и синтаксическому сахару. Само собой — только ООП, а значит и MVC. Лучше сразу привыкнуть к такому стилю программирования, чем переучиваться из говнокодера в человека.

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

    Обязательно сразу приучиться работать с IDE, типа PhpStorm/NetBeans. Никаких «блокнотов».
    Ответ написан
    Комментировать
  • Как вы пришли в PHP ?

    Я о PHP узнал еще в начале 2000х от одного админа чата, где зависал, который изначально на Perl писал. После перехода на PHP он сильно радовался.
    Позже, в 2007-м я не знал ни о каких более достойных альтернативах PHP, поэтому купил книжку и начал потихоньку изучать))
    Ответ написан
    Комментировать
  • Тестирование базы данных на PHP (PHPUnit, DbUnit)

    В дополнение к powerman
    Я могу выделить такие ситуации:
    1) тест функционала или классов, не имеющих сильной зависимости от внешних сервисов
    2) тоже самое, но со слишком обширным использованием DAO
    3) интеграционные тексты

    В первом случае можно спокойно мокировать запросы в БД или иные внешние сервисы.
    Во втором случае по возможности использую обертывание в транзакцию и откат в самом конце теста (методы setUp и tearDown). Если нельзя, то тоже самое что в п.3
    В третьем случае делается всё «на живую» в девелоперской среде или использовать тестовую базу и естественно иметь скрипт генерирующий окружение.
    Ответ написан
    Комментировать
  • Утверждения PHP (PHP assertions)?

    Мы юзаем фреймворк onPHP, в котором присутствует класс Assert. Пользуемся не то, чтобы активно, но всё же.
    Самый типовой случай: надо проверить, что конфиг заполнен нужными параметрами. Гораздо компактнее использовать assert, вместо кучи if.
    В случае чего исключение кидается WrongStateException, а обрабатывается уж это по-разному. В крайнем случае остановка приложения и запись в лог.
    Ответ написан
    Комментировать
  • Как настроить свои страницы для 5xx ошибок сервера или куда переехать, что бы их не было?

    что мешает перейти на VPS-хостинг за те же деньги?
    Ответ написан
    Комментировать
  • Сброс состояния базы перед тестом?

    Используйте отдельную БД под тесты, если тесты не интеграционные. Для каждого кейса генерировать свой набор тестовых данных.
    Ответ написан
    Комментировать
  • PHPStorm, как средство для повышения кпд?

    Удивительно, я наоборот считаю, что у PhpStorm замечательный рендеринг шрифтов как под Ubuntu, так и Mac OS X.

    IDE нужна как воздух, если работаете с фреймворком, например Symfony, Yii и т.д. Sublime Text 2 — хороший РЕДАКТОР, а не среда разработки.

    Я почти год юзал NetBeans. Сейчас компания предложила купить лицензию на PhpStorm. Погонял месяц. Пошустрее, немного более функциональная, более полная поддержка php 5.4 (NetBeans некорректно поддерживает traits). Внятная поддержка конфигураций для тестирования phpunit. Хороший рефакторинг — у NetBeans это похоже только одно название.
    Решил согласиться на приобретение лицензии, в том числе и себе персональную взял на днях.

    Но если хочется бесплатно и не пиратить — NetBeans хороший вариант.
    Ответ написан
    2 комментария
  • Выбор БД: MySQL vs MongoDB?

    Насколько мне известно MySQL производительнее MongoDB на простых структурах данных. Смысл в MongoDB только в бессхемности на уровне БД, что правда не отменяет некоторое подобие схем на уровне приложения. И иногда это может работать шустрее RDBMS.

    Если запись в таблицы будет происходить часто и в больших объемах или потребуется хороший механизм транзакций, то я бы посмотрел на PostgreSQL.
    Ответ написан
    2 комментария
  • Какая CMS подходит для высоконагруженных порталов?

    Я сейчас работаю как раз над проектом с похожей тематикой. Там никакого даже фреймворка нет (исторически сложилось). Перевести всё это на CMS просто нереально, не говоря уж о производительности. Только фреймворк использовать. Кстати, не понятно совсем зачем понадобилась MongoDB, можно и без этого спокойно обойтись. SQL-решения чаще всего быстрее.
    Ответ написан
  • Nginx и два сайта на одном домене

    Дарю универсальный конфиг для кучи проксируемых черех nginx доменов c автоматическим редиректом доменов с www на без www. Сервер на Убунту.

    nginx.conf
    user www-data;
    worker_processes 1;
    pid /var/run/nginx.pid;
    
    events {
    	worker_connections 4096;
    	multi_accept on;
    }
    
    http {
    
    
    	sendfile on;
    	tcp_nopush on;
    	tcp_nodelay on;
    	keepalive_timeout 65;
    	client_max_body_size 100M;
    	types_hash_max_size 2048;
    
    	server_names_hash_bucket_size 64;
    
    	include /etc/nginx/mime.types;
    	default_type application/octet-stream;
    
    
    	access_log /var/log/nginx/access.log;
    	error_log /var/log/nginx/error.log;
    
    
    	gzip on;
    	gzip_disable "msie6";
    
    	gzip_vary on;
    	gzip_proxied any;
    	gzip_comp_level 5;
    	gzip_buffers 16 8k;
    	gzip_http_version 1.1;
    	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    
    	map $host $host_wo_www {
    		default $host;
    		~^www\.(?P<wo_www>.+)$ $wo_www;
    	}
    	include /etc/nginx/conf.d/*.conf;
    	include /etc/nginx/sites-enabled/*;
    }
    
    


    В sites-enabled/default
    server {
    	listen 80;
    	server_name ~^(?:www\.)?(?P<host_wo_www>.+)$;
    	server_name_in_redirect	off;
    	resolver	127.0.0.1;
    
    	access_log	/var/log/httpd/$host/access.log;
    	location	~* \.(?:jpe?g|gif|png|ico|css|zip|tgz|gz|rar|bz2|dic|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$
    	{
    		root	/var/www/$host_wo_www/www;
    		access_log off;
    		expires	30d;
    		add_header Pragma public;
    		add_header Cache-Control public;
    	}
    
    	location / {
    		root	/var/www/$host_wo_www/www;
    		index	index.html index.htm index.php;
    		access_log	off;
    		proxy_pass http://127.0.0.1:8081;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header Host $host;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    	}
    }
    
    Ответ написан
    Комментировать
  • Есть ли успешный опыт загрузки ОС с USB 3.0 флешки через USB 3.0 порт?

    Проблемы могут быть только со старыми дистрибутивами ОС, которые не имеют драйверов для портов USB 3.0.
    На практике у меня были проблемы только с установкой хакинтоша 10.7.х, пришлось порт USB 2.0 юзать.
    Ответ написан
    Комментировать
  • Как запоминать хотя бы половину того, что читаешь?

    Я помню еще во времена своей школьной юности учительница по математике приводила статистику по запоминанию в среднем школьниками новой информации. Точные цифры не помню, могу ошибиться, но порядок приблизительно таков:
    1) через день ученик забывал около половины новой информации
    2) еще через день оставалось около 25%
    3) через неделю процентов 10%, если не меньше

    Единственный способ запомнить надолго — повторять изучение материалов через промежутки времени, когда начинает забываться.
    Ответ написан
  • Миграция мозга WordPress -> Symfony (или любой современный фреймворк)?

    Я бы для начала попробовал повторить какой-нибудь типовой проект из завершенных на фреймворке.
    У меня сейчас немного схожа ситуация, но у меня есть время, чтобы разрабатывать свой велосипедный ОО-фреймворк. Когда пойму, что он меня перестает устраивать — перейду на какой-нибудь известный.
    Почему такой путь? Потому что так будет понятнее, почему разработчики фреймворка пришли к тем или иным способам реализации. Год назад я вынужден был завершать проект, начатый не мной, на Yii. Я долго въезжал в него и так до конца и не понял, что в нём такого замечательного. Возможно потом пойму.
    Ответ написан
    Комментировать
  • Какие вы знаете бюджетные решения по защите квартиры в отсутствии хозяев?

    Почему бы не заключить договор с вневедомственной охраной или с ЧОП?
    Первые стоят совсем немного, порядка 2000 в год. Зато чуть что — бравые ребята с автоматами через 5 минут у дверей квартиры.
    Ответ написан
    5 комментариев
  • Как удалить свой аккаунт с Хабра?

    Не пойму, а почему бы просто не забыть о хабре? Зачем обязательно удаляться? Спам вроде не идет на почту.
    Да и негатива не пойму. Чем обидели? Минусами в карму?
    Ответ написан
  • Как исправить кодировку в AJAX? "Статика" отдается в правильной кодировке?

    Можно явно указывать кодировку при ajax-запросе из jquery в параметрах функции ajax
    scriptCharset: "utf-8"
    
    Ответ написан
    Комментировать
  • Как найти работу PHP Junior'у?

    Я прошу прощения, что вклиниваюсь в тему, но похоже, что у нас есть кое-что общее с автором. Хабр же не позволяет создать вопрос, выдавая 404-ую ошибку (кармы не хватает или какой-то баг?).

    Более года разрабатываю сайты на Joomla, но нетиповые, для «дочек» компании. То есть требовалось написание модулей, плагинов и компонентов.
    Всё это время интересовался, как писать грамотно, изучал вопросы серверной оптимизации и т.п.
    Вопрос в том, что я не очень понимаю кем себя позиционировать на рынке труда, если начать искать работу.
    Тоже php junior? Или web-эникейщик?
    Проблема осложняется тем, что зарплата сейчас вполне адекватная, судя по обзору аналогичных предложений на рынке труда, а пожертвовать деньгами ради устройства на стажерскую позицию я не могу — семью кормить надо.
    Ответ написан
    Комментировать