PHP Стиль Кодирования Функция против Передачи Переменных - PullRequest
1 голос
/ 19 января 2011

Немного нового для всего PHP.

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

  1. Используйте файл PHP с множеством функций. Таким образом, каждая моя страница будет «включать» файл функции php, поэтому функции можно вызывать на любой странице.

OR

  1. Имейте файл PHP, который принимает ввод параметров (не уверен, что это то, что вы называете). Например, function.PHP? Id = 100

Есть комментарии?

Спасибо всем:)

Ответы [ 3 ]

1 голос
/ 19 января 2011

Второй метод предпочтителен: один index.php файл, который управляет всем приложением / веб-сайтом.

Что касается разбивки приложения, вы будете использовать и : параметры в URL, чтобы решить, что делать, и вспомогательные функции, которые получают параметры и выполняют свою работу.

Задача состоит в том, чтобы разбить «большую проблему» на более мелкие, многократно используемые «подзадачи» и обернуть каждую в многоразовую функцию.

После этого, решить«Большая проблема» - это вопрос объединения функций, как вы делаете это в игре-головоломке.

Так вот, это был путь к 1014 * на начальном уровне , на более продвинутом уровне.уровень, который вы бы разбили на ООП , чтобы воспользоваться автозагрузкой (подробности читайте в моем ответе).

Прямо между двумя уровнямиопыта, вы могли бы сначала попытаться использовать процедурную среду php, такую ​​как http://www.limonade -php.net / , а во-вторых, чтобы понять ее код и извлечь уроки из него.Это должно поставить вас на правильный путь для более продвинутого использования PHP.

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

Как я уже сказал, вы будете использовать оба, и вам придется проверятьвход (то есть $_REQUEST $_GET, $_POST, $_COOKIE, $_SESSION, $_FILE, (некоторые элементы из) $_SERVER).Будьте осторожны с XSS (в основном вы будете использовать strip_tags() или htmlentities() или их комбинацию).Это касается аспекта безопасности .

0 голосов
/ 19 января 2011

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

Имейте файл PHP, который принимает ввод параметров (не уверен, что это то, что вы называете). Например, function.PHP? Id = 100

Полагаю, вы имеете в виду, что хотите иметь возможность включать только соответствующие части кода PHP, используя свою собственную пользовательскую функцию.

Если вы не очень ОЧЕНЬ хорошо разбираетесь в программировании, этот подход является неправильным способом решения проблемы. Есть гугл для самоизменяющегося кода для обсуждения этой темы. Это открывает огромные уязвимости внедрения кода и делает отладку кода очень сложной.

Даже если не было проблем с безопасностью и проблем с обслуживанием, и вы - программист-гуру, единственный способ передать параметры в сценарий PHP - через HTTP-запрос или запуск программы - оба сравнивают с огромными накладными расходами. с чтением кода непосредственно из локальной файловой системы - поэтому этот подход неверен с точки зрения производительности.

PHP действительно обладает функциональностью, которая, на первый взгляд, очень похожа на то, что вы предлагаете - автозагрузчик. Однако есть некоторые очень важные различия.

Большинство вещей, связанных с производительностью, которые вы можете контролировать в PHP (т. Е. Не HTTP, не DB), это объем кода, который интерпретатор должен анализировать. Так что ваш первый подход некорректен с точки зрения производительности.

Правильный способ решения проблемы - разбить функциональность на связанные блоки - и хранить их в отдельных файлах, а затем включать только те, которые вам нужны для конкретной задачи.

0 голосов
/ 19 января 2011

Welcome Tak4evr

Я бы использовал объектно-ориентированные методы проектирования над этим методом.Процедурный код, основанный на многих функциях, сложен для отслеживания и, следовательно, дорог в обслуживании.

Но, учитывая варианты, я бы выбрал ваш первый вариант:

Используйте файл PHP с множеством функций.Таким образом, каждая моя страница будет «включать» файл функции php, таким образом, функции можно вызывать на любой странице.

Вы бы включили этот файл и вместо использования function.php?id=100, как вы предлагалииспользуйте что-то более описательное, которое затем использует ваши функции.

Например, используйте clients.php?id=100, затем используйте clients.php, чтобы получить id, и передайте это id одной из ваших функций.

Надеюсь, это поможет.

...