Кому не сложно дайте рекомендации по работе для новичка

Тема в разделе "PHP", создана пользователем DOCSistems, 21 июл 2016.

  1. DOCSistems

    DOCSistems

    Регистрация:
    25 сен 2014
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте! Осваиваю php пока учусь писать процедурным подходом, но и потихоньку изучаю ООП. Написал небольшой скрипт по статьям - добавление, удаление, редактирование, текст полной статьи. Кому не сложно и не жалко своего времени посмотри пожалуйста и дайте какие-нибудь рекомендации новичку (архив с БД https://drive.google.com/file/d/0B3ONVd1IhRHWQW90ZWpUdWM5czg/view?usp=sharing)
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Независимо от того процедурный стиль вы используете или объектный - никогда не используйте mysql функции напрямую, оберните их собственными функциями.
    Например, расширение mysql давно устарело и вам сейчас надо его заменить на mysqli. В вашем текущем варианте вам надо пройтись по всем моделям (могла ведь быть и не одна, а сотня) + startup.php и заменить везде названия mysql функций. Если б у вас была обёртка, вам бы нужно было внести правки только в одном файле.
     
  3. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    а еще лучше поставить пхп 7.0 и сразу учиться на последней стабильной версии, плюс все эти mysql и mysqli можно опустить и сразу начать использовать pdo
     
  4. DOCSistems

    DOCSistems

    Регистрация:
    25 сен 2014
    Сообщения:
    6
    Симпатии:
    0
    Не понял этот момент? Они же вроде и так находятся в функциях
     
  5. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    А что такое не использовать напрямую вы поняли? Видимо, нет.
    Суть в том, что у вас нигде не должно быть в файлах mysql функций, а они у вас везде. Вместо этого должен быть один файл с обёртками для этих функций и дальше вы уже из него используете обёртки, а не сами mysql функции.
    Например. везде, где у вас сейчас mysql_query, будет, например, db_query, а внутри неё уже вызов mysql_query.
    И сейчас, когда вам нужно заменить mysql_query на mysqli_query вам бы не пришлось это делать в каждом месте, где есть вызов mysql_query, а нужно было бы это сделать только внутри db_query.
     
  6. Нкитос

    Нкитос

    Регистрация:
    15 фев 2016
    Сообщения:
    2
    Симпатии:
    0
    Общая рекомендация новичкам в программировании PHP:
    1) Используйте MVC Laravel
    2) Лучше установить CMS например Prestashop и залесть в кишки там все подробно можно посмотреть
    3) На фронте обязательно Angular или ему подобные
    Опять же Loft Blog Вам в помощь
     
  7. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Эта фраза даже у меня вызывает вопросы. Вы советуете использовать Laravel или советуете посмотреть, как там реализован паттерн MVC?
    Ну, и Laravel, конечно, хороший фреймворк, но нельзя его так безапелляционно советовать (и без каких-либо аргументов).
    Почему Laravel, а не, например, Yii?

    Да, магазинный движок это именно то, что нужно новичку :Biggrin: Особенно такой навороченный, как ПрестаШоп.

    И опять же бессмысленное утверждение.
    Прежде всего, называя Ангуляр и "подобные" вы сразу утверждаете, что нужно делать только SPA, а это нужно, в принципе, далеко не всегда и уж тем более построение REST апи - это совсем не то, чем нужно заниматься новичку.
    Кроме того, Ангуляр сам по себе не для новичков и особо "подобных" не имеет. Например, ближайшая его альтернатива, Ember, имеет совершенно другие принципы построения приложения.

    Да и вообще, при чём тут php? Фронтенд - это js и когда речь заходит не о каких-то мелких скриптах, а про такие масштабные js задачи как SPA - этим должен заниматься отдельный js разработчик.
     
    $iD нравится это.
  8. miketomlin

    miketomlin

    Регистрация:
    17 дек 2013
    Сообщения:
    4
    Симпатии:
    1
    DOCSistems, добавьте хотя бы простейший роутер, а то смотреть на подобное оч. неприятно:
    PHP:
        $articles select_articles();
       
        
    //Получение конкретной статьи
        
    if(isset($_GET["article_id"])){
            
    $one_article select_one_article($_GET["article_id"]);
        }

    и т.д.
    Для получения одной статьи выдергивать остальные в принципе не нужно, а вы еще тут к тому же выдергиваете все, а потом еще одну повторно, хотя она уже должна быть в $articles. И дальше это безобразие продолжается – работаете с POST'ом вне зависимости от тек. адреса – хотя и существуют архитектуры с единым POST-обработчиком, но мне кажется, что это не ваш случай. И пара моих статей в качестве напутствия:
    - чтобы не ограничивать свое детище разруливанием исключительно GET-параметров в единой точке входа и необходимостью транслирования пути в параметр(ы): http://gency.ru/single-entry-point
    - чтобы и при выводе списка статей не выдергивать из БД сразу все статьи: http://gency.ru/pagination