За последние 24 часа нас посетили 20444 программиста и 1095 роботов. Сейчас ищут 778 программистов ...

PHP приложение, структура.

Тема в разделе "PHP для новичков", создана пользователем savsoft, 27 авг 2018.

  1. savsoft

    savsoft Активный пользователь

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Сделал небольшое приложение на процедурном php + MySql. Часть функций, где удобно, реализовано в виде хранимых процедур.

    Вопрос по структуре приложения. У меня есть файл с функциями типа проверить залогинен ли пользователь, найти заказ, найти клиента и т.д., есть файл с данными для подключения к базе данных и еще пару файлов, плюс на каждую таблицу в базе данных, как минимум 4 файла
    <имя_таблицы>.php - вывод данных из таблицы
    <имя_таблицы>_<добавить>.php
    <имя_таблицы>_<удалить>.php
    <имя_таблицы>_<изменить>.php

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

    Интересует разработка учетных приложений, типа учет и выполнение заказов, склады и т.д.
     
    #1 savsoft, 27 авг 2018
    Последнее редактирование: 27 авг 2018
  2. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Архитектура - это фундамент вашего приложения. По аналогии со строительством зданий для того чтобы внести изменения в конструкцию фундамента необходимо снести это здание. В вашем случае проще написать новое приложение с учётом всех ранее выявленных ошибок и структуры MVC.
    Смущает по 4 файла на таблицу.
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.817
    Симпатии:
    735
    Адрес:
    Татарстан
    И что там сложного можно было в хранимки то выносить? к примеру?
     
  4. savsoft

    savsoft Активный пользователь

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    Например удаление заказа, нужно удалить запись заказа (таблица заказов) и строки заказа (таблица содержимого заказов). Соответственно мне в хранимке сделать это гораздо проще и гораздо короче.
    --- Добавлено ---
    Вот и вопрос, а как меньше?
     
  5. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    На счёт хранимок - полная ересь. Удаляется информация из бд одним запросом. Честно говоря я себе не представляю на сколько сложным должен быть алгоритм условий удаления, чтобы юзать процедуры. Но это точно не ваш случай.
     
  6. savsoft

    savsoft Активный пользователь

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    А я привык пользоваться хранимками. И почему я должен переносить запросы из хранимок в php?

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

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    @savsoft, зачем реализацию однотипных действий дублировать для каждой таблицы? Из примитивного апи делаете не пойми что. Я бы еще понял, если бы это шло нахлестом на дефолные действия, но как обязаловка – б-Э-Э.
     
  8. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @savsoft, зачем же вы пришли на форум за советом, если вам никто не указ и вы сами всё знаете? 50% всей работы над приложением - это организация структуры БД. И скорее всего БД у вас организована неправильно, раз с процедурами вам проще.
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Вот фрагмент типичного апи:
    GET /таблица/запись – edit;
    POST /таблица/запись – save;
    GET на узловом элементе – список записей соотв. таблицы;
    POST на узловом элементе – создание/удаление записей.
    --- Добавлено ---
    У нас еще часто входят в апи AJAX-версии отдельных действий. И rename/save name, например:
    GET /таблица/запись?p=1 – edit с подсказкой номера страницы для возврата к списку;
    POST /таблица/запись?p=1 – save аналогично;
    GET /таблица/запись – rename;
    POST /таблица/запись – save name.
     
    savsoft нравится это.
  10. savsoft

    savsoft Активный пользователь

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    С хранимыми процедурами проще, потому что и весь мир, и я в том числе, с ними работал, когда еще и php не существовало.
    У меня проблема с php. Так как к работающей программе понадобилась веб-морда, заказчик решил часть функций перенести в веб.
    Я посмотрел пару курсов от lynda и быстро по аналогии сделал, как они показывали. А у них отдельный скрипт на каждое действие (CRUD). Дальше ясно, что нужно разобраться с ООП и выбрать MVC-фреймворк. А существующий код пусть пока работает, его улучшить, не переписывая - нельзя.

    Всем спасибо.
     
  11. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Можете тут выложить код какой либо вашей хранимой процедуры желательно с циклом?
     
  12. savsoft

    savsoft Активный пользователь

    С нами с:
    1 фев 2017
    Сообщения:
    96
    Симпатии:
    2
    А у меня проблем с хранимыми процедурами нет. А с циклами в них вообще нет, ибо я очень редко пользуюсь курсорами. Вот с php да, проблемы. Только осваиваю.
     
    #12 savsoft, 27 авг 2018
    Последнее редактирование: 27 авг 2018
  13. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Так возможно у меня проблемы с хранимыми процедурами, поэтому я и попросил вас показать пример.
     
  14. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Что мешает сделать так что в <имя_таблицы>.php - чтение, запись, удаление?