Ответы пользователя по тегу PHP
  • Как обойтись без composera?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    да и работаю я на винде.

    А разве есть какие-то "затруднения" для работы composer в винде? Я лично не припомню. Да и потом, есть же vagrant, настройте себе православное окружение в линуксе и живите спокойно. А кодить в винде будете.

    ходит в интернет через прокси

    Для таких крутых чуваков придумали https://toranproxy.com/
    Ответ написан
  • Как защитить исходный код стартапа от воровста программистом, которые его пишет?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    При трудоустройстве обычно подписывается документ о неразглашении и т.п.
    Ответ написан
  • PHP -> Регулярные выражения -> Как найти лишнее в коде?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Все просто - для таких задач регулярки не подходят. Для обработки и фильтрации HTML лучше применить обход DOM дерева. Способ этот намного более надежный и простой.

    Если хотите знать подробнее почему регулярки не подходят, предлагаю почитать вот это: habrahabr.ru/post/171667
    Ответ написан
  • Как лучше создать структуру бд?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Таблица product и product_translations со всеми полями которые могут быть переведены и полем локали.
    Ответ написан
  • Можно ли php заменить на node.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Можно, вопрос только зачем вам это нужно и что это вам даст.

    И да, не забывайте о том что при развертывании node.js приложения вам придется позаботиться о том что бы оно не падало. В идеале все это хендлится какими-нибудь express.js - то есть без фреймворков в node.js вообще не стоит лесть если у вас опыта мало.

    Так же если у сервера на который вы деплоитесь не одно ядро, то стоит запустить по одному инстансу приложения на ядро и проксировать на них запросы через nginx. node.js по умолчанию синхронный. То есть вся та хваленая асинхронность проявляется только когда речь идет о I/O. JS код же выполняется в одном потоке, две строчки кода не могут выполняться одновременно. Потому придется вклинивать какие-то менеджеры процессов и т.д.
    Ответ написан
  • Php или Ajax с JS?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    То что вы называете AJAX это всего-лишь XmlHTTPRequest, API Javascript-а которое позволяет вам делать HTTP запросы непосредственно из JS кода. И все. Никакой магии.

    Когда вы переходите в браузере на какую-то страницу, например index.php, создается HTTP запрос. Далее запрос идет на сервер где его ловит апач или nginx или еще кто. Тот смотрит что мы хотим получить результат работы скрипта index.php и просит PHP запустить скрипт для такого-то запроса. PHP любезно парсит запрос, раскидывает все по масичвикам $_SERVER/$_GET/$_POST и т.д. и запускает этот самый index.php.

    Далее ваш скрипт выдает ответ, то есть это какие-то заголовки (например если вы делаете редирект вы выставляете заголовок Location) и тело (все что вы выводите через echo). Этот ответ уходит клиенту и он видит радостно страничку.

    Что нам дал XmlHttpRequest? Он дал нам возможность делать эти самые HTTP запросы по своей прихоти а не только когда пользователь снизайдет отправить форму или перейти по ссылке. Можно хоть в цикле бесконечном сервак опрашивать на предмет наличия новых данных (если очень упрощать то приемрно так работает скажем уведомления во вконтактике).

    Подытожим: Нет, вы не можете заменить серверную часть на технологию, которая реализует общение с этим самым сервером. Это просто дополнительная возможность предоставляемая вам Javascript-ом. Как ею воспользоваться решать вам.
    Ответ написан
    Комментировать
  • Стоит ли использовать MVC PHP Framework?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Возьмите Silex, вам должно его хватить. И не делайте упор на эти три стремные буквы MVC если у вас нет понимания что это такое.
    Ответ написан
    Комментировать
  • Обучение PHP без локальных серверов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да, что бы выполнить PHP система должна иметь интерпритатор оного, который нужно поставить. Не вижу в этом ровным счетом никакой проблемы.

    Для обучения достаточно поставить PHP без всяких там апачей или нгинксов. У него есть встроенный простенький web сервер, учиться можно и на консольных скриптиках и в интерактивном режиме (php.exe -a). Потом правда скорее всего еще mysql какой поставить придется или sqlite. Ну или можете поставить openserver под виндой.

    Хотя в идеале было бы поставить на какой virtualbox какую убунту и баловаться уже там, ибо все эти штуки типа php ставить там в разы проще. Да и скорее всего в будущем деплоиться вы будете именно на линуксы.

    А еще круче - поставить Vagrant и воспользоваться каким-нибудь готовым боксом для старта, например вот: https://vagrantcloud.com/avenuefactory/boxes/lamp

    Для маков можно через brew поставить.
    Ответ написан
    Комментировать
  • Где найти php библиотеку для работы с bitcoin?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    с документацией на русском

    Тяжко вам будет. И что значит "пользоваться сторонними сервисами не хочу"? Вы майнить на PHP собрались? Или свою биржу основать решили?
    Ответ написан
  • Как вам такой code-style в PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я пожалуй просто оставлю это тут: PSR-1, PSR-2
    Ответ написан
    Комментировать
  • Как передать массивы get, post через htaccess ? ?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    с передачей массива post


    Почитайте на википедии что такое HTTP и что такое тело запроса. То что вы видите в PHP под этими суперглобальными $_SERVER/$_POST/$_GET/$_FILES и т.д. это все благодаря такой чудной вещи как SAPI (Server Application Programming Interface). То есть заболтивый PHP берет ваш HTTP запрос (который ему дали обработать WEB-сервера, апач тот же или nginx или еще кто) и вызывает соответствующее SAPI. То есть если у нас mod_php апачевский, то там все чуть по другому (SAPI для PHP много всяких разных). Если у нас php-fpm, то у нас там самый что нинаесть запрос, который нам проксировал какой nginx или тот же апач. Этот самый SAPI берет заголовки запроса и распихивает все по суперглобальным массивам. Он берет заголок с куками и распихивает его в $_COOKIE или видит что у нас POST запрос и он помечен как multipart/formdata и разбирает запрос, выковыривает файлики и сохраняет на диск заполняет массивы $_POST/$_FILES. Скажем если чувак отправит запрос с Content-Type: application/json (что модно стильно молодежно для мобильных клиентов) то PHP SAPI разобрать его будет не в состоянии и вам придется брать тело запроса и разбирать его самому.

    Работа вашего скрипта происходит только ПОСЛЕ того как SAPI все подготовит. а htaccess влияет на работу только до того как SAPI начнет работу, так что никаких POST массивов и т.д. Только HTTP запросы.

    Редиректы намного интереснее, так как это результат запроса. Ну то есть... у него нету тела. нет возможности сохранить тело запроса (ну как... есть... но клиент тоже это должен уметь и одним htaccess тут не обойтись) так что при редиректе сохранить и передать на новый урл исходные данные уже не выйдет. То есть можно, но повторюсь - это должно быть реализовано с двух сторон и тогда это не совсем редирект а больше похоже на то что вы отправляете форму двумя запросами. Один - узнает куда слать данные формы, второй отправляет.

    Такие дела.
    Ответ написан
  • Есть ли книга по PHP где создается гостевая книга?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Гостевая книга... эх... Реализуйте твиттер. Это поинтереснее и не сильно сложно.
    Ответ написан
    Комментировать
  • Как поисковые роботы относятся к include?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Инклуды отрабатывают на сервере, на клиенте о них ничего не известно. Следовательно поисковым ботам так же не будет известно что там у вас на сервере происходит.
    Ответ написан
  • Как конвертировать doc, pdf, djvu, docx, fb2, epub в HTML на PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я думаю имеет смысл просто отображать документы если это возможно. Например:

    PDF - mozilla.github.io/pdf.js
    ДеЖаВю - https://bitbucket.org/ololo/minidjvu.js/wiki/Home
    docx, fb2 - habrahabr.ru/post/195342
    epub - https://github.com/futurepress/epub.js/

    что до doc - думаю проще будет doc в docx сконвертить.

    Из того что я проверял - pdf и epub будут хорошо в браузере рендриться. Остальное не тыкал.
    Ответ написан
    4 комментария
  • Где скачать пример интернет-магазина на MVC ООП, PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Не до конца понимаю архитектуру MVC паттерна

    Потому что MVC это не паттерн.

    Model-view-controller (MVC, «модель-представление-поведение», «модель-представление-контроллер», «модель-вид-контроллер») — схема использования нескольких шаблонов проектирования, с помощью которых модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента таким образом, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные.


    Вы не поймете этот подход на сложных решениях потому что там слишком много всего намешано. Да и вообще не пытайтесь понять MVC. Поймите концепцию GRASP-овского контроллера, слабой связанности и сильного зацепления.
    Ответ написан
    Комментировать
  • Как правильно разобрать каждый элемент из массива?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    <?php
    
    $str = trim('=||text1=3:30||text2=3:30||text3=3:20||text4=3:21', '=|');
    $data = array_map(function ($chunk) {
        $chunk = explode('=', $chunk);
        $values = explode(':', $chunk[1]);
        return [
             'count' => $values[0], // без понятия что это
             'val' => $values[1]
        ];
    }, explode('||', $str));


    ideone.com/eqLRQA

    либо регуляркой внутри array_map. Что-то типа
    /(\w+)=(\d+):(\d+)/
    Ответ написан
  • Как собрать pdo mysql phpfarm для symfony2 на ubntu 14.04?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Убунту и собирать... зачем? Только собранные пакеты. И зачем вам phpfarm...

    Если вы хотите управлять окружением для каждого проекта - vagrant (возможно + docker) + ansible/puppet вариант намного лучше так как потом можно будет наладить и автоматический деплоймент.
    Ответ написан
    Комментировать
  • Какой вариант лучше для синглтона?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    А вы я смотрю не угомонитесь никак.

    С токи зрения конкретно реализации разницы нет, с точки зрения читаемости кода - второй вариант.

    Просто прочитайте код:
    1) вернуть инстанс если он есть иначе вернуть результат присванивания инстанс равен инстанцирование себя
    2) если у нас нет инстанса, то мы создаем его, затем мы возвращаем инстанс.

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

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