Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Подскажите, как лучше сделать? Есть скрипт, в котором выполняется include("../lib/checks.php"). В файле checks.php выполняется куча различных проверок. Примерно так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Таких проверок много и количество вложенных if слишком большое. Хотелось бы переписать примерно так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Но именно так нельзя, потому что break с верхнего уровня не выполняется. Не подскажите, как лучше сделать? Желательно более удобное и читаемое, чем такое: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 13:42 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Alibek B., непонятно, в чем проблема то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 13:54 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Вот более реальный код: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. То есть между проверками есть еще какой-то код и в этом случае его также нужно будет заключать внутрь проверки на !$stop. Пока что я просто использую goto вместо break и все работает. Но может быть есть что-то более правильное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 14:25 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Alibek B., Alibek B.проверки на !$stop. Пока что я просто использую goto вместо break и все работает. где тут $stop и где тут GOTO? говорите об одном коде, а показываете другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 14:30 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Оформить всю кучу проверок как функцию и возвращать Код: php 1. по мере обнаружения. В вызывающей программе проверять возвращаемое значение. Не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 14:42 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
vkleОформить всю кучу проверок как функцию и возвращать Код: php 1. по мере обнаружения. В вызывающей программе проверять возвращаемое значение. Не? скажу даже больше... результатом функции include является результат возвращаемый скриптом. потому: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 14:56 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
автор$ret = 'error1'; return false; запомните это дети и никогда больше так не делайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 14:59 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ScareCrowавтор$ret = 'error1'; return false; запомните это дети и никогда больше так не делайте. ))) К словам придираетесь, уважаемые? Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 15:06 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ПрограмёрScareCrowпропущено... запомните это дети и никогда больше так не делайте. ))) К словам придираетесь, уважаемые? Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. вот так тоже не делайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 15:11 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
r uговорите об одном коде, а показываете другой. Если мой код переписать так, как я предположил в конце первого сообщения (с помощью переменной $stop и ленивой проверки условий), то для промежуточных процедур нужно будет использовать дополнительные проверки $stop. vkleОформить всю кучу проверок как функцию и возвращать return код_ошибки Можно конечно и так. Но тогда в этой функции нужно будет объявлять global для множества различных переменных и что-то можно будет упустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 15:12 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
авторif (include("subscript.php")=='ok') кстати так не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 15:14 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторif (include("subscript.php")=='ok') кстати так не работает. а как работает? ))) блин... ну видите синтаксическую ошибку, какого фига не написать "тут ошибся, вот сюда скобку надо"?!!! Ну понятно, человек такой, ничё не поделать... Насчёт "так не делайте" - да не хочу я общаться с тобой на эту тему... не хочешь - не делай, только вот если есть причина так не делать, то её надо описывать, а до того - это лично твоё мнение. Вот проверенный вариант: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 15:49 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
поддерживаю. меня тоже заинтиговало почему не делать??? если чисто ради супер пупер парапупер кодинга, аля возвращать всегда код, притом не числом а константой, и проверки константой то это ладно, но подзреваю что сдесь ещо какаято причина??? ответь пожалуста, почему не делать так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 17:24 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
alex564657498765453поддерживаю. меня тоже заинтиговало почему не делать??? если чисто ради супер пупер парапупер кодинга, аля возвращать всегда код, притом не числом а константой, и проверки константой то это ладно, но подзреваю что сдесь ещо какаято причина??? ответь пожалуста, почему не делать так? все что что-то возвращает должно возвращать либо правильный ответ либо исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 17:33 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ScareCrowalex564657498765453поддерживаю. меня тоже заинтиговало почему не делать??? если чисто ради супер пупер парапупер кодинга, аля возвращать всегда код, притом не числом а константой, и проверки константой то это ладно, но подзреваю что сдесь ещо какаято причина??? ответь пожалуста, почему не делать так? все что что-то возвращает должно возвращать либо правильный ответ либо исключение. а-а... ну всё понятно ))) А теперь главный вопрос, а кто сказал что "error1" или "error2" являются "неправильными" ответами? Вполне себе нормальная ситуация, человек проверяет состояние некоторого компонента (например некой модели) и смотрит: 1. Заполнено ли название. Если не заполнено вернуть "error1" (ну или логичнее вернуть "Не заполнено название"). 2. Заполнено ли количество. Если не заполнено вернуть "error2" (ну или логичнее вернуть "Не заполнено количество элементов"). 3. Заполнено ли описание. Если не заполнено вернуть "error3" (ну или логичнее вернуть "Не заполнено описание"). А потом на выход отправляется этот текст ошибки, который выводится пользователю. Почему только один - например интерфейс предусматривает поле для вывода ошибки ввода (разумеется только одной ошибки). P.S. Так что я говорю, без описания причины "так не делайте" - всегда Ваше личное мнение. Вот Вы посчитали что тут так, а реально тут может быть совсем и не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 17:53 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Програмёр, ну он имел ввиду немного другое. сточки зрения космической архитектуры, любая функция, не знает, где имено будет код, умеющий обработать "косяк" и бросая исключение, это гарантия что при косяк-детектид, мы попадём в код, который знает что в этой ситуации делать. а почему космическая архитектура...да потому что тогда любую строчку надо заключать в трайкетч, а чего мелочиться ведь оператор сложения это тоже функция, делает автоприведения типов, а откуда мы знаем что перед сумой учтено, что строка + число это исключение, а не равно числу(ибо строка - 0) ЗЫ в твоём случае всётаки лучше код возврата - мне так кажеться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 18:06 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
авторА теперь главный вопрос, а кто сказал что "error1" или "error2" являются "неправильными" ответами? Вполне себе нормальная ситуация, человек проверяет состояние некоторого компонента (например некой модели) и смотрит: а теперь посмотрите как это у нормальных людей сделанно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 18:37 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторА теперь главный вопрос, а кто сказал что "error1" или "error2" являются "неправильными" ответами? Вполне себе нормальная ситуация, человек проверяет состояние некоторого компонента (например некой модели) и смотрит: а теперь посмотрите как это у нормальных людей сделанно. плиин, ну опять...а пример кода!!! это очень абстрактно у нормальных людей. вот на википедии написано, что МВЦ большинство пхп програмистов понимают не верно, и вот куда смотреть к нормальным людям? а если в зенд, так там неделями можно смотреть пока поймёшь их концепцию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 19:47 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
автора если в зенд, так там неделями можно смотреть пока поймёшь их концепцию... медитируй, это полезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 21:50 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
150 раз уже обсасывали эту тему на форумах (и десятки раз наверное на этом форуме). Ну что же... повторим: Исключения - это маяк исключительной ситуации. Ситуации, за которую я как программист некоторого компонента не могу нести ответственность. 1. Ну например, я читаю данные из базы, и внутри функции чтения оказывается что не был передан идентификатор соединения. Работа функции далее бесполезна. Можно вернуть false, но лучше бросить исключение, так как и последующая программа скорее всего будет работать неверно. 2. Например, я отправляю данные через сокет, и вдруг физически рвётся соединение. Я как программист программы передачи данных не имею влияния на данную ситуацию и ничего с ней сделать не могу. Можно передать false, но лучше бросить исключение, так как и последующая программа скорее всего будет работать неверно. 3. Например, я читаю книжку. И дойдя до 125 страницы понимаю, что страниц больше нету, но текст оборвался на полуслове. Можно закрыть книжку и пойти спать (вернуть false), но лучше пойти в магазин и потребовать объяснений (бросить исключение), так как и последующая программа (чтение следующей книги из серии) скорее всего будет работать неверно. 1. Однако, я читаю из базы данные, и мне возвращается пустой массив (данные не найдены). Можно бросить исключение, но... лучше вернуть false, ведь вполне нормально, что на сайте нету например книжек на букву "ъ". 2. Однако, я принимаю данные через сокет и вдруг поток данных заканчивается (длина очередной порции равна нулю). Можно бросить исключение, но... лучше вернуть false, ведь вполне нормально что я принял всё, что мне отправляли и ничего страшного в окончании приёма данных нету, программа продолжает функционировать в штатном режиме. 3. Однако, я читаю книгу. Дойдя до 250-ой страницы, я понимаю, что она закончилась, пошло описание разных терминов, прослеживается законченность мысли, но не прослеживается законченность идеи. Можно конечно пойти в магазин и потребовать объяснений, почему рассказ продаётся по частям, но лучше закрыть книгу и лечь спать :) А завтра пойти в магазин и в штатном режиме купить очередную книгу из серии. Потому бросание исключений по каждому чиху - это бред. Если моя функция предусматривает на выходе варианты "name is empty", "number is empty", "content is empty" и "ok" , то нету смысла для первых трёх вариантов бросать исключения. Ведь моя функция именно так и документирована Код: php 1. 2. 3. 4. 5. Потому поведение неправильного ввода является штатным. И "уважаемый(ая)" ScareCrow, давайте впредь не троллить участников форума. Уж не знаю почему модераторы закрывают на это глаза, но Вам место в ветке ПТ. С Вашим интересом просто ля... сказать, Вам ветка с обычным трёпом ни о чём принесёт много радости :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2014, 22:55 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Не хочу, конечно, никого обидеть, но все фрагменты кода приведенные тут, являются, ИМХО, - говнокодом, кой писать не стоит. Написав таким образом большой проект вы замучаетесь его потом поддерживать, особенно когда года через 2 забудете сами что да как там работает. Не говоря уже о том, что поддержка достанется кому-то другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 09:36 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Пусть даже это будут не исключения, объявите в подключаемом файле внятно называнную функцию с внятными параметрами и используйте ее. Лучше даже вынести в какой-то класс. А если использовать автоподгрузку то можно вообще забыть про эти все include. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 09:39 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
HettНе хочу, конечно, никого обидеть, но все фрагменты кода приведенные тут, являются, ИМХО, - говнокодом, кой писать не стоит. Написав таким образом большой проект вы замучаетесь его потом поддерживать, особенно когда года через 2 забудете сами что да как там работает. Не говоря уже о том, что поддержка достанется кому-то другому. сам я так не пишу, так как почти все приложения проектирую с использованием ООП, на больших проектах это разумеется удобнее структурного программирования. Однако, чем приведённый код будет усложнять поддержку в случае если весь сайт написан функциями, без использования объектов? А теперь ещё интереснее... представим, что у нас есть некий набор данных, и есть некоторый набор модулей. Так вот, каждый модуль использует только определённую часть из входных данных. При этом задача максимально упростить встраивание в систему нового модуля. А вызов модуля происходит по пути (то есть явно вводится пользователем). Какая система модулей в данном случае самая простая? Правильно... единственный файл, который можно загрузить по имени не передавая в него весь список доступных аргументов явно. А модуль уж сам разберётся, что ему из данных надо, а что нет. Придумайте систему, которую было бы проще чем эту поддерживать и расширять. :) Если предложите вариант проще, я покорно соглашусь что не прав :) P.S. Варианты, где все используемые данные заталкиваются в один массив не предлагать, потому как именно это точно поддерживать невозможно. Поверьте, я знаю И теперь уже знаю что значит поддерживать проект, в котором модуль привязывается к сайту через специальную функцию внутрь которой передаётся предела 30 аргументов. Просто документация к этой системе велась посредственно, а в какой-то момент её вообще не стало :) Так что, в поддержание слова "говнокод" жду не говнокод в ответ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 10:30 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
авторОднако, чем приведённый код будет усложнять поддержку в случае если весь сайт написан функциями, без использования объектов? Хотя бы тем, что тут даже функций то и нет, вместо ее вызывается оператор include. Который юзает глобальный набор переменных и может менять их значение или вовсе удалять их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 11:02 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ПрограмёрТак что, в поддержание слова "говнокод" жду не говнокод в ответ :) Думаю как завернуть этот же код хотя бы в функцию вы себе представить можете, поэтому не вижу смысла тратить время на ерунду, доказывая что-то тут :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 11:04 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
HettПрограмёрТак что, в поддержание слова "говнокод" жду не говнокод в ответ :) Думаю как завернуть этот же код хотя бы в функцию вы себе представить можете, поэтому не вижу смысла тратить время на ерунду, доказывая что-то тут :) могу ))) Говорю же, что подобный код поддерживаю сейчас :) Вот у нас умник какой-то завернул код в функцию, и теперь вызов функции, отвечающий за привязку модуля к админке выглядет вот так: Код: php 1. 2. 3. 4. 5. 6. 7. А прикольно то, что разумеется бОльшая часть модулей во всех этих данных и не нуждается вовсе, только в какой-то части... А ведь система расширяется... и вскоре, если я не перепишу эту всю фигню как надо, туда ещё начнут переменные падать)) Ну как? удобнее стало, от того, что код в функцию завернули? или лучше было просто include вызывать с использованием только того, что надо модулю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 11:24 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
О каких модулях вы вообще говорите, если у вас там все работает на функциях и вообще не пойми как? Если бы ли бы дейстительно модули, таких городушек бы не возникало. Для начала установите у себя в голове правильное понятие модульности. PS^ В любом случае этот вариант лучше с простым инклюдом хотя бы тем, что из модуля переменные случайно не поменяются, а то потом будете неделю ошибку искать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 11:29 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
*вариант с функцией лучше варианта с простым иклюдом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 11:30 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
HettО каких модулях вы вообще говорите, если у вас там все работает на функциях и вообще не пойми как? Не понял ) А что, в структурном программировании модульность отменили? А как же например dll файлы написанные на Cи, они уже не являются модулями приложения? )) Я ещё раз повторю задачу, есть список входных параметров, есть модули, которым из этого списка требуется лишь малая часть. Ну например есть модуль личного кабинета (личные данные), который нуждается в знании данных пользователя для отображения, а есть модуль галереи, которой наплевать на данные пользователя, но обязательно требуется знать pageId для отображения правильного списка изображений, но в то же время есть модуль каталога, который предусматривает множество действий (просмотр товара, просмотр категории, управление товарами, управление категориями, сортировка, и т.д.), такому модулю надо знать pageId, $event_act, $UserId и возможно ещё какие-то данные. Есть модуль меню, которому надо знать тоже много разной инфы для работы. И тому подобное. Как мне сделать систему единую для них всех, что бы потом её было легко расширять? Ведь для каждого модуля определять свою функцию загрузки - это убиться можно )) Тогда ядро движка уже не будет ядром, так как мне в его код надо будет лазить для включения нового модуля. Выход - универсальная функция, которая может подгрузить любой модуль. Вызов такой функции я привёл выше. Второй выход - отказ от функции и вклинивание кода модуля в основной код ядра, что бы он работал с переменными движка и сам разбирал то, что ему нужно. Если появляется страх перед изменением переменных движка, то можно сделать так: Код: php 1. 2. 3. 4. 5. 6. Однако в этом случае мы опять же не будем грузить в функцию модуля всё(!!!) что ему может понадобиться, а отдадим только нужное, и заниматься данными будет строго сам модуль, а не ядро. Ядро - оно просто эти данные готовит и грузит модуль через include, а уже модуль определяет что из них он будет пользовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 12:58 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
авторНе понял ) А что, в структурном программировании модульность отменили? А как же например dll файлы написанные на Cи, они уже не являются модулями приложения? )) Структурное программирование это что? С использованием только структур (т.е. не функциональное, не используя функций)? На Си вы не напишите даже модуля без объявления хотя бы одной функции и ваш подход там использовать не получится. авторЯ ещё раз повторю задачу, есть список входных параметров, есть модули, которым из этого списка требуется лишь малая часть. Ну например есть модуль личного кабинета (личные данные), который нуждается в знании данных пользователя для отображения, а есть модуль галереи, которой наплевать на данные пользователя, но обязательно требуется знать pageId для отображения правильного списка изображений, но в то же время есть модуль каталога, который предусматривает множество действий (просмотр товара, просмотр категории, управление товарами, управление категориями, сортировка, и т.д.), такому модулю надо знать pageId, $event_act, $UserId и возможно ещё какие-то данные. Есть модуль меню, которому надо знать тоже много разной инфы для работы. И тому подобное. Ничего не мешает инициализировать модуль с нужными данными, а не так, чтобы модуль эти данные брал из глобальной области видимости. Вы потом переменную решите какую-то удалить и что, будете править все модули? авторКак мне сделать систему единую для них всех, что бы потом её было легко расширять? Ведь для каждого модуля определять свою функцию загрузки - это убиться можно )) Ну да, проще сговнокодить. Да и в чем сложность то? авторТогда ядро движка уже не будет ядром, так как мне в его код надо будет лазить для включения нового модуля. Ядро движка, это че ваще такое? Вы вообще нормальную архитектуру программы хоть раз видели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:29 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Програмёр, А вместо пачки параметров единственный объект "контекст" никак не передать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:40 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. А код ваш подверждает еще раз, что качество кода у вас хромает в проекте. Во первых если это функция модуля, то она названа не правильно, т.к. по ее названию не ясно, что это за модуль вообще, да и вообще что она делает не понятно и почему суффикс ing? Половина переменных в верблюжем синтаксисе, половина с подчеркиванием, часть с большой буквы, часть с маленькой, где-то вообще все в нижнем регистре. Названия переменных тоже хз че и где. Где-то после запятой пробелов нету местами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:42 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ИзопропилПрограмёр, А вместо пачки параметров единственный объект "контекст" никак не передать? Ну или хотя бы не единственный, даже несколько. В нормально приложении мог бы быть объект User из которого можно получить часть данных и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:43 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Или пусть даже супер-объект с набором всех модулей к которым можно было обращаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:44 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ИзопропилПрограмёр, А вместо пачки параметров единственный объект "контекст" никак не передать? неее ))) это не по условиям... у нас нету объектов :) А если объект = ассоциативный массив, то в чём разница? Получится то же самое, просто в EngineWrite сейчас передаётся несколько десятков аргументов явно, а в предложенном варианте они будут передаваться неявно (что ещё неудобнее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:53 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ПрограмёрИзопропилПрограмёр, А вместо пачки параметров единственный объект "контекст" никак не передать? неее ))) это не по условиям... у нас нету объектов :) А если объект = ассоциативный массив, то в чём разница? Получится то же самое, просто в EngineWrite сейчас передаётся несколько десятков аргументов явно, а в предложенном варианте они будут передаваться неявно (что ещё неудобнее). масив удобней ...часто какието параметры могут не передаваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:56 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
HettИзопропилПрограмёр, А вместо пачки параметров единственный объект "контекст" никак не передать? Ну или хотя бы не единственный, даже несколько. В нормально приложении мог бы быть объект User из которого можно получить часть данных и т.п. НЕТУ ОБЪЕКТОВ ))) Вы условия не воспринимаете. Мы уходим от ООП, потому у нас нету объектов... Нету User... В лучшем случае есть getUserData которая вернёт хэш массив с данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:56 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
alex564657498765453Програмёрпропущено... неее ))) это не по условиям... у нас нету объектов :) А если объект = ассоциативный массив, то в чём разница? Получится то же самое, просто в EngineWrite сейчас передаётся несколько десятков аргументов явно, а в предложенном варианте они будут передаваться неявно (что ещё неудобнее). масив удобней ...часто какието параметры могут не передаваться. а я и так могу их не передавать )) Просто вместо них передавать заглушки типа null :) Но если вдруг появится модуль, которому нужна половина аргументов, то получим не очень удобный код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:58 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ПрограмёрНо если вдруг появится модуль, которому нужна половина аргументов, то получим не очень удобный код Как будто он щас удобный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:00 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ПрограмёрНЕТУ ОБЪЕКТОВ ))) Вы условия не воспринимаете. Мы уходим от ООП, потому у нас нету объектов... ... за ради интереса - а с чем связан уход от ООП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:08 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
HettавторНе понял ) А что, в структурном программировании модульность отменили? А как же например dll файлы написанные на Cи, они уже не являются модулями приложения? )) Структурное программирование это что? С использованием только структур (т.е. не функциональное, не используя функций)? На Си вы не напишите даже модуля без объявления хотя бы одной функции и ваш подход там использовать не получится. авторТогда ядро движка уже не будет ядром, так как мне в его код надо будет лазить для включения нового модуля. Ядро движка, это че ваще такое? Вы вообще нормальную архитектуру программы хоть раз видели? Начинаю терять интерес к беседе :) 2 секунды и википедия отвечает структурное программирование Насчёт "ядро движка"... Неужели так сложно? :) Нормальная система - это система которая обладает полной модульностью не ограничивая модули в функциональности (ну или ограничивая только в целях безопасности функционирования системы в целом). Одним из примеров такой системы является ОС windows или unix. Если рассматривать эти системы, то несложно увидеть ядро, которое отвечает за загрузку приложений в память, распределение ресурсов и многое другое, а также модули (сами программы), которые позволяют расширить функционал системы до нужных пользователю. Там конечно структура сложнее... Есть модули, которые являются прослойками между ядром и программой... Примером такого модуля является драйвер, который позволяет выполнять некие действия, которые не предусматривает ядро системы (так как оно не нужно для работы программ в целом), но которое является промежуточным и напрямую не востребовано пользователем, а требуется именно в самом приложении для его правильной работы. Ну это если по простому. Как такая система функционирует? )) Она загружает из файла функцию под определённым именем и начинает её выполнение? НЕТ!!! Она загружает файл в память, определяет несколько переменных окружения для программы (то есть создаёт аналог глобальных переменных) и передаёт управление в определённую точку (у нас это начало файла). Вот чем занимается ядро... Аналог этой системы я и предлагаю на ПХП, только тут её структура в разы проще. Ядро - для загрузки модулей. Модуль - конечный продукт востребованный пользователем (ну или другим продуктом, который востребован пользователем). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:15 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
-k2-ПрограмёрНЕТУ ОБЪЕКТОВ ))) Вы условия не воспринимаете. Мы уходим от ООП, потому у нас нету объектов... ... за ради интереса - а с чем связан уход от ООП? Ну в моём случае (в системе которую я поддерживаю), потому что она начинала писаться в 97 году :) . Насколько я знаю тогда ООП не очень то развито было вроде :). Но факт остаётся фактом... есть системы, где использование ООП не практикуется. А уход от ООП в вопросе произошёл в момент когда представленный мной изначально код назвали говнокодом... вот с того момента и я стараюсь автору этого ответа пояснить случаи, когда именно этот код не будет говнокодом в отличие от любого другого (который я тоже уже предоставил) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:19 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
Про ядро и модули - полный бред ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:21 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
авторНормальная система - это система которая обладает полной модульностью не ограничивая модули в функциональности (ну или ограничивая только в целях безопасности функционирования системы в целом). Одним из примеров такой системы является ОС windows или unix. Да вы что, прям так и не ограничивает? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:55 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ИзопропилПро ядро и модули - полный бред Вам виднее )) Бред из-за того что всё совсем иначе? (тогда как?) или из-за того что не понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:56 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
HettавторНормальная система - это система которая обладает полной модульностью не ограничивая модули в функциональности (ну или ограничивая только в целях безопасности функционирования системы в целом). Одним из примеров такой системы является ОС windows или unix. Да вы что, прям так и не ограничивает? :) ?! В чём ограничивает? Кроме, как я говорил уже, ограничений по безопасности. То есть запрета прямого вывода в порты устройств и других подобных ограничений? И то первое ограничение снимается с драйверов устройств насколько я помню (лично под ОС никогда драйвера не писал просто). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:59 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
встретились два одиночества. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 16:36 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ScareCrowвстретились два одиночества. Дааааааааа..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 17:42 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ТАК ПРОГРАММЕР 1)ты не понял намёк, ты написал про структурное - как антоним ооп, а тебя протролили..ведь структурное, это как бы антоним функциональному (это не там где функции и процедуры). ещо есть процедурное, которое ты имел ввиду скорей всего, но сказал структурное. 2)ты ставишь для себя рамки, изза которых в споре заведомо проиграешь. по твоим постам неявно прослеживаеться мысль. что есть куча идей твоих, есть куча идей опоннента. и один из вас дурак, а один умный. - ты сам то в такое веришь? все в чомто правы а в чомто ошибаються. нащот передачи масива вместо уже такого числа аргументов, ну я думаю ты уже даже переделал в своём коде на масив, так как это удобней(а прикинь конфиг прокидываеться через несколько функций :) ) так что давай чтоб беседа не потеряла смысл, там где трошки перегнул соглашайся, а там где касманавты говорят про то что, создание истребителя 5 поколения это отстой, ведь его нельзя будет потом гибко в шестое поколение переделать, нельзя будет как звездолёт использовать, а главное что он не сможет быть в составе космической ударной группы на космическом авианосце который будет патрулировать отдалёную галактику... там стой на своём. ибо пускай косманавты покажут пример кода, который они помимо расхваления , реально гибко применяли под разные проекты, ибо круто обобщили(и имено расширяли меняя серьёзно общую логику, а не тупо использовали как есть - гавнокод последний тоже всегда можно использовать как есть и сказать что он вечный). а то вот что удивительно - среднестатистический косманавт скажет что у него куча лет опыта в построении крутого кода с кучей патернов, и сейчас он пишет принципиально новый революционный клас для логирования скажем. и что больше всего удивляет. что основной аргумент таких космонавтов следующий поддержка кода, всё ради поддерки, особено если поддерживать будет другой человек. но вот что дивно - то что наделал один космонавт, другой косманавт не хочет использовать :) пока не запостят на гитхабе и статью на хабре не склепают. тогда он будет юзать это как решение некой команды джедаев обладающих силой, а про баги у трудности умалчивать... правда если выйдет статья про то что решение отстой, вот тогда он начнёт тоже лошить. это естественный процесс вообщето. точно такиеже процесы но вдругой интерпритации 1)похудание 2)борьба с курением, алкоголизмом 3)разные системы личностного роста и повышения эффективности 4)среди менеджеров тоже есть тонна теорий про то как эефективно управлять... и что интересно ни одна школа менеджмента не может похвастаться(вот великий менеджер стал виликим, ибо придерживался нашей школы) или доктор по похуданию тем что у него худают все и всегда или что у одного метода борбы с зависимостью результаты всегда с большим отрывом лучше чем у остальных (именно у метода, а не у одного доктора) чтоб было ясно - дело в методе а не в человеке его применяющего. споров куча, но никто не может показать убедительный результат превосходства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 17:56 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
alex564657498765453, СОРИ пропустил концовку мысли ... а то вот что удивительно - среднестатистический косманавт скажет что у него куча лет опыта в построении крутого кода с кучей патернов, и сейчас он пишет принципиально новый революционный клас для логирования скажем. (тоесть за столько лет ему не надо было логирование?! конечно надо, и конечно писал, так почему не использовать крутое решение? и на базе него расширить, если дело в новом драйвере для логирования , или формат лога другой... или почему писать заново? чтож это за ооп такое что решаем задачу заново снуля.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 18:00 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ООП - не обязательно фабрики, паттерны, полиморфизм и т д Достаточно инкапсуляции Нет в PHP модуля в смысле Модулы или Дельфи - можно просто использовать в качестве модуля class со статическими методами (автозагрузчик заодно заработает ) Нет структур/записей - опять же класс подойдет ( самый простой без магических методов) в отличие от словарей код более читаемый будет и автодополнение в среде программирования заработает При желании параметры функций/методов можно сделать типизированными Где тут ракетные науки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 19:16 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
ИзопропилООП - не обязательно фабрики, паттерны, полиморфизм и т д Достаточно инкапсуляции Нет в PHP модуля в смысле Модулы или Дельфи - можно просто использовать в качестве модуля class со статическими методами (автозагрузчик заодно заработает ) Нет структур/записей - опять же класс подойдет ( самый простой без магических методов) в отличие от словарей код более читаемый будет и автодополнение в среде программирования заработает При желании параметры функций/методов можно сделать типизированными Где тут ракетные науки? а в моём понимании, судя по твоему посту ты не космонавт, а толковый айтишник, который будет использовать чтото в меру надобности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 20:41 |
|
||
|
PHP: Завершить выполнение кода из include-файла
|
|||
|---|---|---|---|
|
#18+
alex564657498765453ТАК ПРОГРАММЕР 1)ты не понял намёк, ты написал про структурное - как антоним ооп, а тебя протролили..ведь структурное, это как бы антоним функциональному (это не там где функции и процедуры). ещо есть процедурное, которое ты имел ввиду скорей всего, но сказал структурное. 2)ты ставишь для себя рамки, изза которых в споре заведомо проиграешь. по твоим постам неявно прослеживаеться мысль. что есть куча идей твоих, есть куча идей опоннента. и один из вас дурак, а один умный. - ты сам то в такое веришь? все в чомто правы а в чомто ошибаються. нащот передачи масива вместо уже такого числа аргументов, ну я думаю ты уже даже переделал в своём коде на масив, так как это удобней(а прикинь конфиг прокидываеться через несколько функций :) ) так что давай чтоб беседа не потеряла смысл, там где трошки перегнул соглашайся, а там где касманавты говорят про то что, создание истребителя 5 поколения это отстой, ведь его нельзя будет потом гибко в шестое поколение переделать, нельзя будет как звездолёт использовать, а главное что он не сможет быть в составе космической ударной группы на космическом авианосце который будет патрулировать отдалёную галактику... там стой на своём. ибо пускай косманавты покажут пример кода, который они помимо расхваления , реально гибко применяли под разные проекты, ибо круто обобщили(и имено расширяли меняя серьёзно общую логику, а не тупо использовали как есть - гавнокод последний тоже всегда можно использовать как есть и сказать что он вечный). а то вот что удивительно - среднестатистический косманавт скажет что у него куча лет опыта в построении крутого кода с кучей патернов, и сейчас он пишет принципиально новый революционный клас для логирования скажем. и что больше всего удивляет. что основной аргумент таких космонавтов следующий поддержка кода, всё ради поддерки, особено если поддерживать будет другой человек. но вот что дивно - то что наделал один космонавт, другой косманавт не хочет использовать :) пока не запостят на гитхабе и статью на хабре не склепают. тогда он будет юзать это как решение некой команды джедаев обладающих силой, а про баги у трудности умалчивать... правда если выйдет статья про то что решение отстой, вот тогда он начнёт тоже лошить. это естественный процесс вообщето. точно такиеже процесы но вдругой интерпритации 1)похудание 2)борьба с курением, алкоголизмом 3)разные системы личностного роста и повышения эффективности 4)среди менеджеров тоже есть тонна теорий про то как эефективно управлять... и что интересно ни одна школа менеджмента не может похвастаться(вот великий менеджер стал виликим, ибо придерживался нашей школы) или доктор по похуданию тем что у него худают все и всегда или что у одного метода борбы с зависимостью результаты всегда с большим отрывом лучше чем у остальных (именно у метода, а не у одного доктора) чтоб было ясно - дело в методе а не в человеке его применяющего. споров куча, но никто не может показать убедительный результат превосходства. 1. да )) тута я ошибся... термин "структурное" немного шире чем "процедурное", потому спорить не буду)) Недочитал, видимо от волнительной беседы 2. А вот тут немного не соглашусь. Тут вся фишка в том, что в отдельности по каждому вопросу при споре, который можно свести к вопросу на "да или нет" может быть прав кто-то один. В данном случае спор звучит так "можно сделать так, и это будет удобно" - "так делать нельзя, это говнокод". Вот и усё. 3. С массивами-конфигами сталкиваюсь только по работе в Yii, но там конфиги сквозь функции не прокидываются, насколько я помню. :) Код чаще пишу в стиле ООП, потому у меня конфиги доходят до конструкторов классов, после чего, разумеется, переплывают уже в переменные объектов. На массив код не переделал... у меня всё руки не доходят до переписывания этой системы )) При мысли об этом я впадаю в лёгкую панику... Пока мне ещё везёт, я пока пишу проекты отдельно от этой системы... её просто поддерживаю, если кому что дописать надо, поправить и всё такое :) 4. Насчёт поддержки кода, не всегда. В прошлой компании работал, в момент устройства на работу там код был очень даже ничего (спустя пол года разработки системы)... А спустя ещё год систему начали усложнять и всё начало превращаться в большую, хорошо перемешанную кашу :) Так что в принципе код одного программиста может быть понятен другому, и иногда так бывает... Просто у нас к сожалению больше как в народе говорится "быдлокодеров" чем тех, кто всё по фэншую пишет. :) Потому так и получается, что из 10 разработчиков код читабельный и удобный только у 2-3... А читабельный, удобный и правильно продуманный в плане структуры, вообще у одного :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 22:22 |
|
||
|
|

start [/forum/topic.php?all=1&fid=23&tid=1462721]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 248ms |
| total: | 438ms |

| 0 / 0 |
