Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
Заблокирован

PHP приложение на чистом процедурном стиле

27.09.2018, 20:54. Показов 5029. Ответов 55

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Изучаю пхп и пытаюсь написать что то большое. Но пока не изучил ООП. Все говорят что можно большие приложения и без ООП написать. Но не смог найти примеры таких реализации. Что имело бы единую точку входа, использовало что то вроде роутинга и легко поддерживался и расширялся. Если кто нибудь знает где найти, имеет соображения или имеет какие то исходники прошу поделиться?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2018, 20:54
Ответы с готовыми решениями:

Создание движка только на процедурном стиле
Хочу создать приличный движок на процедурном без ООП. Каковы будут последствия? :umnik:

[Mono] Приложение на чистом .Net и Mono
Здравствуйте! Подскажите, правильно ли я понял? Не обязательно приложение писать на моно, а можно готовое (на .Net) запустить там, где есть...

Оконное приложение на чистом Win API
Один японец сделал, ради демки, оконное приложение на чистом Win API. Win API совсем не функциональное, и в нём есть сложность, связанная с...

55
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
27.09.2018, 21:45
Цитата Сообщение от Rem1993 Посмотреть сообщение
Но не смог найти примеры таких реализации
Ну правильно, потому что никто так не делает. По крайней мере в PHP.

Цитата Сообщение от Rem1993 Посмотреть сообщение
Все говорят что можно большие приложения и без ООП написать.
Можно и на ассемблере написать, вот только зачем?

Цитата Сообщение от Rem1993 Посмотреть сообщение
легко поддерживался и расширялся
Вот это как раз про ООП. Иначе засрете глобальную область видимости и начнете делать подобие классов из функций/массивов.

Примеры извращений можете найти по запросу "github php процедурный стиль".
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
28.09.2018, 00:01
Цитата Сообщение от tarasalk Посмотреть сообщение
Ну правильно, потому что никто так не делает. По крайней мере в PHP.
Откуда такая уверенность?

Цитата Сообщение от Rem1993 Посмотреть сообщение
Но не смог найти примеры таких реализации.
Они существуют. Но что-то свое вам навряд ли станут здесь показывать.

Если нужен простой каркас приложения, чтобы было от чего оттолкнуться, можете мне написать.
0
 Аватар для CoderHuligan
1744 / 1009 / 257
Регистрация: 30.06.2015
Сообщений: 5,119
Записей в блоге: 56
28.09.2018, 05:24
Цитата Сообщение от tarasalk Посмотреть сообщение
Ну правильно, потому что никто так не делает. По крайней мере в PHP.
Я так делаю, и именно в PHP. Причём по части расширямости я могу сделать не хуже. ООП в php это нонсенс. Ваши сайты по пять минут открываются и весят под 30 метров.
Цитата Сообщение от tarasalk Посмотреть сообщение
Можно и на ассемблере написать, вот только зачем?
Затем, чтобы ваш код остался для будущего. Ведь ооп по всей видимости долго не продержится..
Цитата Сообщение от Rem1993 Посмотреть сообщение
Если кто нибудь знает где найти, имеет соображения или имеет какие то исходники прошу поделиться?
Например известный PHP Nuke, от которого многие фреймворки пошли. Правда код несколько устарел, но даёт представление о программировании в процедурном стиле.
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
28.09.2018, 08:10
Да пишите как нравится) что там что там нужно изучать ооп дает больше пространства для каких то действий, шаблонов, но и в процедурном можно тоже самое сделать) не все так красиво, но можно
В принципе и то и то не трудно, если последовательно изучать, прошли пару уроков, и на основе этих уроков пытайтесь создать что то и тд
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
28.09.2018, 10:17
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Ваши сайты по пять минут открываются и весят под 30 метров.
Видимо вы ни один нагруженный проект не писали, иначе знали бы что стиль кода тут далеко не самое главное. Архитектура решает.
А про вес кода в 2018 как то даже странно слышать.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Затем, чтобы ваш код остался для будущего
Боюсь вас разочаровать. Никому он там не нужен)

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Ведь ооп по всей видимости долго не продержится..
Может быть. Но на смену придет что-то более прогрессивное, и это явно будет не процедурный стиль.

Цитата Сообщение от Phantom-84 Посмотреть сообщение
Откуда такая уверенность?
1) За 5 лет не видел ни одного нормального проекта на чистом процедурном стиле. Сплошные велосипеды, ноунейм сайты, устаревшее ПО.
2) Гитхаб. Открываем самые популярные PHP проекты -> ничего процедурного.
3) Headhunter. На запрос "php процедурный стиль" показывает 1 вакансию по России, на запрос "php ооп" 1675.

Цитата Сообщение от Phantom-84 Посмотреть сообщение
Но что-то свое вам навряд ли станут здесь показывать.
А все почему? Потому что знают, что свои подделки могут впарить только нешарящим клиентам.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Например известный PHP Nuke, от которого многие фреймворки пошли. Правда код несколько устарел, но даёт представление о программировании в процедурном стиле.
Вот именно, устарел. Как и весь чисто процедурный стиль.
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
28.09.2018, 10:36
Цитата Сообщение от tarasalk Посмотреть сообщение
А все почему? Потому что знают, что свои подделки могут впарить только нешарящим клиентам.
Может, просто не хотят. Например, потому что знают, что адепты современных фреймворков начнут клевать, даже не вникнув в суть.

Добавлено через 8 минут
У меня есть административная панель общего назначения, написанная с использованием процедурного стиля. Также есть несколько сервисов, написанных в этом стиле. Да, история у них давняя, но если продолжать поддерживать и развивать, то на старье это не похоже. Кстати, сейчас хочу написать простой форум с использованием процедурного стиля. Чтобы вспомнить, как оно пишется "с нуля на процедурке"

Добавлено через 5 минут
Цитата Сообщение от tarasalk Посмотреть сообщение
На запрос "php процедурный стиль" показывает 1 вакансию по России, на запрос "php ооп" 1675.
Подобные запросы и ключи под них оставляют какие-то недоумки. По-моему, нормальный программист не станет про себя писать, что он знает ООП. Естественно, не потому что не знает
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
28.09.2018, 10:43
Честно говоря, людям пофиг что у вас там, они открывают страницу чтобы просмотреть контент, поэтому что в процедурном что в ооп сделать проект, всем пофиг, единственное не пофиг будет самому программисту, так как в процедурки обьем работы вдвое больше, и приходится много лишнего делать. А работадатели придерживаюися стиля, что сейчас в тренде, и у все есть если в тренде ооп,(они даже не могут знать что это) основные заказы будут идти на ооп если процедурка, все переключаться на нее, и всем пофиг что хуже что лучше, лишь бы был тренд и капали деньжата

Добавлено через 41 секунду
Поэтому если нравится делайте в процедурном
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
28.09.2018, 10:55
Цитата Сообщение от andyyy Посмотреть сообщение
так как в процедурки обьем работы вдвое больше, и приходится много лишнего делать
Например?
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
28.09.2018, 12:13
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Может, просто не хотят. Например, потому что знают, что адепты современных фреймворков начнут клевать, даже не вникнув в суть.
Тогда почему адепты ООП не боятся выкладывать код?

Цитата Сообщение от Phantom-84 Посмотреть сообщение
Подобные запросы и ключи под них оставляют какие-то недоумки. По-моему, нормальный программист не станет про себя писать, что он знает ООП. Естественно, не потому что не знает
Ну правильно. У нормального PHP программиста ООП подразумевается по умолчанию, в отличии от процедурок.
А вообще речь шла о вакансиях. Знание ООП требуется практически везде. Впрочем в резюме ситуация схожая.

Цитата Сообщение от Phantom-84 Посмотреть сообщение
Например?
Есть какой-то аналог phpunit в процедурном стиле? Вы вообще тесты пишите?)
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
28.09.2018, 12:40
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Например?
вот вам цитаты за и против


Ничего плохого нет, в Си например вообще нету ООП и он 42 года показывает что ООП это всего лишь модный тренд, тем более, что ООП во всяких С++ и PHP это и есть каша из благих идей и процедурного программирования, которое требует дополнительных усилий на написание хорошей архитектуру, вместо облечения этого процесса.
что я и писал)

2.Ну это достаточно сложный вопрос.
Во-первых, если вы работаете в компании и там все используют процедурный стиль, то и вам следует его использовать и это совершенно не страшно.
Во-вторых, если вы работаете один и вам, то да, лучше использовать ООП (хоть это и не так страшно).

Теперь переходим к 1 вопросу. Представьте себе, что у вас на сайте есть пользователи и записи. В ООП мы можем сделать так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Base {
  protected $connection = "Подключение";
  protected query ($q) {
    $this->connection->query($q);
  }
  public function loadById ($id) {
    if (!$id) return false;
    else {
      return $this->query("load * from `". $this->type ."` where `id`='". $id ."'");
    }
  }
  public function delete($id) {
    if (!$id) return false;
    else {
      # Удаление
      return true;
    }
  }
}
 
class User extends Base {
  private $type = 'users';
  public function setGroup($id) {
    # Назначаем группу пользователя.
    # Можем использовать $this->connection, $this->loadById, $this->delete;
  }
}
 
class Entry extends Base {
  private $type = 'entries';
  public function close($id) {
    # Аналогично
  }
}
А теперь представьте, как бы вы это реализовали в процедурном стиле. И главное, сколько бы переменных вы заняли в глобальной области видимости? А если вам нужно будет изменить метод loadById?

и тд. читайте: тостер.ру(на английском)/q/68690




от себя могу сказать что ооп нужен во основном для компактоности кода, чтобы не переписывать одни и те же действия по много раз.
2. в ооп есть всякие фитчи типо наследование(инкапсуляция полиморфизм, всякие видимости переменных, модификаторы доступа, что тоже нужно если вы пишите например банковские приложения, интерфейсы и тд.) - при разработки супер сложных проектов это все сыграет значительную роль.
Итог , если разрабатывать что-то сложное и чем будут пользоваться миллионы людей, лучше конечно ооп, но на процедурки тоже можно все это сделать, просто сами замучаетесь потом
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
28.09.2018, 13:04
Цитата Сообщение от tarasalk Посмотреть сообщение
Тогда почему адепты ООП не боятся выкладывать код?
Потому что другие к ним относятся более снисходительно, чем они ко всем остальным.

Цитата Сообщение от tarasalk Посмотреть сообщение
Есть какой-то аналог phpunit в процедурном стиле? Вы вообще тесты пишите?)
А он нужен? Куда ж без них, дважды два посчитать не можем без тестов

Цитата Сообщение от andyyy Посмотреть сообщение
А теперь представьте, как бы вы это реализовали в процедурном стиле.
Представил. Объем кода был бы точно не больше, а скорее меньше.

Цитата Сообщение от andyyy Посмотреть сообщение
И главное, сколько бы переменных вы заняли в глобальной области видимости?
Ни одной. Устроит такой ответ?

Цитата Сообщение от andyyy Посмотреть сообщение
А если вам нужно будет изменить метод loadById?
У меня не будет методов в обычном понимании этого слова

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

Видимо, автор темы задал свой вопрос, чтобы посмотреть на наши споры
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
28.09.2018, 14:14
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Потому что другие к ним относятся более снисходительно, чем они ко всем остальным.
Высосано из пальца. Уверен, адекватные люди есть по обе стороны конфликта.

Цитата Сообщение от Phantom-84 Посмотреть сообщение
А он нужен? Куда ж без них, дважды два посчитать не можем без тестов
Все понятно. Сразу видно что вы даже не знаете зачем нужны тесты. Ну да, на проектах уровня "простенький форум" тесты особо и не нужны. Попробуйте написать оборотно-сальдовую ведомость с миллионами транзакций в день. Ошибки в подсчетах недопустимы + текущий баланс и остатки нужно знать на любой период в любой момент времени.

Цитата Сообщение от Phantom-84 Посмотреть сообщение
Представил. Объем кода был бы точно не больше, а скорее меньше.
А может напишите такой пример? Мне действительно интересно.

Цитата Сообщение от Phantom-84 Посмотреть сообщение
Ни одной. Устроит такой ответ?
Так не бывает.

Цитата Сообщение от Phantom-84 Посмотреть сообщение
Видимо, автор темы задал свой вопрос, чтобы посмотреть на наши споры
Да простит нас автор, тема обречена на холивар. Главное чтобы спокойно и по существу
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
28.09.2018, 15:09
Цитата Сообщение от tarasalk Посмотреть сообщение
Все понятно. Сразу видно что вы даже не знаете зачем нужны тесты.
Аналогично. Раз делаете такие выводы на пустом месте.

Цитата Сообщение от tarasalk Посмотреть сообщение
Так не бывает.
В смысле?
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
28.09.2018, 16:04
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Раз делаете такие выводы на пустом месте.
Ну как же пустое, если вы сами спрашиваете зачем нужны тесты?
Цитата Сообщение от Phantom-84 Посмотреть сообщение
А он нужен? Куда ж без них, дважды два посчитать не можем без тестов
Цитата Сообщение от Phantom-84 Посмотреть сообщение
В смысле?
Если речь про глобальные переменные то ок, можно и без них. Я тупанул.
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
28.09.2018, 19:44
Сопоставьте предложения:
Цитата Сообщение от tarasalk Посмотреть сообщение
Есть какой-то аналог phpunit в процедурном стиле? Вы вообще тесты пишите?)
Цитата Сообщение от Phantom-84 Посмотреть сообщение
А он нужен? Куда ж без них, дважды два посчитать не можем без тестов
Добавлено через 3 минуты

Не по теме:

В общем автор, видимо, не появится. "Пинать мертвого кролика" не вижу никакого смысла.

0
 Аватар для otto-fukin
14 / 60 / 21
Регистрация: 15.06.2017
Сообщений: 572
28.09.2018, 19:52
Цитата Сообщение от Rem1993 Посмотреть сообщение
PHP приложение на чистом процедурном стиле
будет работать быстрее. Но код будет тяжелое говно. Смените учебники прошлого века на что-то более современное
0
 Аватар для CoderHuligan
1744 / 1009 / 257
Регистрация: 30.06.2015
Сообщений: 5,119
Записей в блоге: 56
29.09.2018, 12:12
Цитата Сообщение от andyyy Посмотреть сообщение
Представьте себе, что у вас на сайте есть пользователи и записи. В ООП мы можем сделать так:
А теперь у себя на сайте попробуйте изменить этот класс, добавив в него новый метод, не лазя при этом в код класса.
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
29.09.2018, 12:44
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А теперь у себя на сайте попробуйте изменить этот класс, добавив в него новый метод, не лазя при этом в код класса.
Новый метод можно добавить в трейте или родительском классе
А с чего вдруг нельзя лезть в код класса?
0
 Аватар для CoderHuligan
1744 / 1009 / 257
Регистрация: 30.06.2015
Сообщений: 5,119
Записей в блоге: 56
29.09.2018, 13:05
Цитата Сообщение от tarasalk Посмотреть сообщение
Новый метод можно добавить в трейте или родительском классе
То есть вводить наследование, которого специалисты по ООП рекомендуют держаться подальше.. Тренд такой..
Цитата Сообщение от tarasalk Посмотреть сообщение
А с чего вдруг нельзя лезть в код класса?
А с того, что пользователь вашего продукта просто не сумеет этого сделать.. За редкими исключениями.. Пользователю вдруг захотелось иметь расширенный функционал. Он обращается к вам, как разработчику продукта, сделать новый функционал за денюжку, при этом ничего не меняя в коде руками, а просто скачав плагин.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2018, 13:05
Помогаю со студенческими работами здесь

Можно ли создать приложение под Android на чистом С++?
Можно ли создать приложение которое содержит только код на С++ без строчки на java? Ну то есть на чистом ndk, и при этом у меня будет...

О чистом коде html,css,js,php
Друзья, я занимаюсь программированием уже более 10-ти лет. Работал уже с разными CMSб фреймворками. Столкнулся с сайтом какого-то чувака...

сайт на чистом php плюсы и минусы
Добрый день. Помогите с советом. Моя дипломная связана с созданием сайта,в котором пользователи могут регистрироваться, оставлять...

Как сделать приложение в стиле Office 2007 в VS2008
Как сделать приложение в стиле Office 2007 в VS2008 ? Если можна подробно, как установить? Буду благодарен и за другой стиль,...

Можно ли в css стиле(на HTML странице) использовать php?
Здравствуйте Задался таким вопросом А можно ли в css стиле(на HTML странице) использовать php? То что оно работать будет я знаю,а вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru