Рубрика «php» - 195

image

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

И так, суть капчи в том, что пользователю отображается несколько иконок и необходимо выбрать ту, которая логически не вписывается в общий ряд. Думаю в интернете таких вариантов море, но я не нашел (ну если честно не особо то и искал).
Читать полностью »

Chrome Logger — серверсайд логи в консоли хрома

Chrome Logger это Google Chrome расширение для отладки серверсайд приложений в консоли хрома.

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

Инструкции по применению под инсайд. Читать полностью »

в 10:35, , рубрики: framework, phalcon, php, разработка, метки: , ,

Phalcon 1.1 beta
После успешного релиза PHP-фреймворка Phalcon 1.0, команда разработчиков продолжает работать над его развитием. В этой статья я хочу осветить наиболее интересные фичи, представленные в версии 1.1.0 BETA

Читать полностью »

На днях стояла задача посчитать количество пользователей сайта vk.com, поделившихся определенным постом (т.е. количество репостов). Для этого существует приложение «Вирусоанализатор», но в процессе использования выяснилось, что оно не считает большое количество репостов (от 100 и более). Ползунок доходит почти до конца и на этом останавливается. А т.к. уже был объявлен конкурс на наибольшее количество репостов на определенную запись, то нужна была альтернатива. Которой не оказалось…

Поэтому пришлось обращаться к API Вконтакте и искать как реализовать данную задачу. Сразу скажу, что не пришлось создавать standalone-приложения для этой цели. Все получилось реализовать при помощи методов, не требующих access_token. Ниже представлен список методов API, используемых в данной задаче:

  • likes.getList — получение списка пользователей, который нажали «Мне нравится» или «поделились» постом
  • users.get — получение информации о пользователях по их uid или коротким именам
  • wall.get — получение новостей со страницы пользователя.

Из плюсов данного расчета можно выделить только то, что не нужно создавать приложение для этой цели.
Из минусов (если изучить эти API методы): неудобный поиск нашего репоста у пользователя. Вконтакте разрешает получить методом wall.get максимум 100 новостей. Разумеется данный метод поддерживает параметр offset (смещение по новостям), но все же я ограничился определенным количеством новостей для обработки (500 штук).

Некоторые возникшие проблемы:

Итак, нам нужно было данные о тех пользователях и их постах, которые поделились нашим репостом. Для получения этого списка используется метод API likes.getList, у которого есть параметр filter, принимающий два возможных значения:Читать полностью »

Дайджест интересных новостей и материалов из мира PHP за последние две недели №15 (08.04.2013 — 22.04.2013)

Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

GenemuFormBundle — бандл, предоставляющий удобную реализацию некоторых виджетов для Symfony2, в частности, популярного WYSIWYG-редактора TinyMCE. Рассмотрим две типовые задачи: использование TinyMCE в бэкэнде и настройка bb-кодов во фронтенде.

Читать полностью »

Приветствую всех! А давайте сделаем топик-шпаргалку по Symfony и Doctrine.

Введение

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

Ближе к делу

Функции работы с датами и Doctrine

Представим себе небольшой личный блог. Нужно вывести навигацию для постов с группировкой по году и месяцу. Очень простая задача. Вы создаете метод в классе BlogRepository, и Читать полностью »

Всем привет!

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

Напомню, что в проекте используется php(Yii), mysql и memcached. В проекте достаточно много сущностей, для каждой из которой есть своя модель, которая наследуется от CActiveRecord.

Хранятся файлы моделей следующим образом. В папке models создаем папку base. Когда генерируем модель через Gii, то указываем, что ее нужно положить в папку models/base и к имени класса добавляем Base. Затем создаем в models аналогичный класс без Base, который наследуется от базового класса и имеет в себе лишь метод model().

Кстати заранее скажу, что базовые модели наследуем не от CActiveRecord, а от ExtActiveRecord — расширяем CActiveRecord под наши нужды. Но об этом позже. Пока что разницы никакой.

Пример:
models/base/BaseUser.php — стандартный класс, который генерируется через Gii
models/User.php — класс, который наследуется от BaseUser и имеет в себе метод model()

	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return User the static model class
	 */
	public static function model($className=__CLASS__) {
		return parent::model($className);
	}
	

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

Не забываем добавить в конфиге 'application.models.base.*'.

Перейдем собственно к теме поста и поставим задачи, которые хотим решить:

  1. Уменьшить количество запросов в базу на обновление
  2. Уменьшить количество запросов в базу на выборку

Читать полностью »

Давеча был свидетелем одного интересного спора о том как же действительно нужно определять IP адрес конечного пользователя из скриптов PHP.
Собственно, каждое слово сабжа отображает действительную ситуацию. Это был религиозный спор обострённый весенней замечательной погодой, в котором, я считаю, не оказалось правых и не правых, но который побудил меня к мини-исследованию и к моему счастью поставил точку в понимании этого конфессионального но по факту очень простого вопроса.
Для тех, кто как и я сомневался был уверен, что во всём разобрался, но боялся спросить лень было разбираться в мелочах — под кат.
Читать полностью »

20 апреля в Санкт-Петербурге пройдет конференция о Highload веб-разработке DEV {highload}.

DEV {highload} — это профессиональная конференция, где выступают только выдающиеся спикеры. Они будут рассказывать о том, что хочется знать веб-разработчику сложных высоконагруженных проектов.

Web-canape выступает партнером мероприятия и мы хотим вручить один бесплатный билет самому проактивному Хабра-юзеру. Читайте про это в конце поста.

DEV {highload} — конференция о Highload веб разработке

Предыдущая конференция, посвященная Highload веб-разработке, прошла с успехом и пользой для участников из разных городов и стран. Некоторые ее материалы можно посмотреть здесь. Новая DEV {highload} обещает быть еще интереснее! Только новые темы – так же профессионально и актуально. Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js