Архив рубрики: PHP

Pre-Signed URL for Amazon S3 Object

It’s so easy enough than I thought before!

At first let’s upload file to chosen bucket. Below is a live example from my Laravel 5 project:

I’ve set ACL to ‘authenticated-read’ (it was ‘public-read’ before) because the aim of pre-signed URL is to restrict access and give it only to authorized users (who have valid link).

Then if we want to get actual download URL let’s get our S3 client:

Then get appropriate command:

Get request to execute this command:

And finally get the pre-signed Url to download private resource!

I’m using a kind of download controller that acts as proxy of user request to download a private file so the result of its work is a redirect to actual resource URL:

Eloquent model default values

Tryin’ to find a way to set default model values in Eloquent model (speaking about Laravel ORM) I was surprised that there’s no any mention about it in official docs. So thanks to fellas from StackOverflow such a workaround was found:

This example shows you how to set default value to ‘foo’ model property (model field, attribute, etc) if you’re creating a new FooModel record. Читать далее

xDebug под MAMP

Как-то сидим мы с другом, кодим каждый свое. Очередную свою неполадку я пытался отладить типичным способом die(). Это не очень понравилось другу и он сообщил, что если я не научусь нормально отлаживать “как бог”, то за эти дополнительные знания никто не заплатит. Мотивация была поставлена, и я решил разобраться с тем, чтобы все-таки запустить у себя xdebug. Он и до этого работал, но только на уровне “покажи колстек ошибки”.

Коротко о том, как под запустить xDebug под MAMP (учитываем, что работаем на Mac OS X).

1. Идем на http://xdebug.org/wizard.php и вставляем в текстовое поле ввода результат выполнения функции phpinfo() на локальной машине

2. После нажатие “Analyze” мы получаем четкое руководство к действию. Что-то вроде этого:

Скорее всего, в системе xdebug у вас уже установлен (как это было у меня), но он подключен в режиме php-расширения. Нам же нужно Zend-расширение, чтобы были возможными разного рода breakpoints и иже с ними.

Поэтому строку extension=phalcon.so стираем из php.ini

3. Все вышеописанные действия дают установленное Zend-расширение. Остается только в актуальном php.ini дописать в конце:

 

В принципе, все!

Если для отладки использовать Sublime Text, то нужно через Packages Manager установить Xdebug Client. Затем через меню Tools > Xdebug выбрать “Start new session” (или что-то вроде этого). Ставим бряки, обновляем страницу сайта и радуемся!

Я убил на это часа 3…