Я собираюсь приступить к еще одному крупному проекту PHP. На этот раз я намереваюсь, чтобы папка проекта была аккуратной! Поэтому у меня есть несколько вопросов, касающихся сохранения моего проекта и СУХОЙ:
Как я могу различать исходные файлы PHP и файлы PHP, к которым должен обращаться браузер? Другими словами, как я могу понять, какие PHP-файлы выдают выходные данные и которые дают определения функций или классов?
Я планирую отделить свои PHP-функции от статических классов, разделенных субъектом, например database :: create () или editor :: write (). Что вы думаете об этом?
Я планирую создать файл PHP «core.php», который будет включен в начало каждого файла SINGLE PHP в проекте. Этот файл будет обрабатывать аутентификацию и включать базовые функции. Мысли?
Проект будет сильно основан на Ajax. Это задает вопрос: должны ли мои функции PHP быть действительными функциями PHP или должны быть отдельными файлами PHP, которые берут GET или POST? Мой план делает оба . Я создаю папку для исходных файлов PHP и одну для PHP-файлов «ajax» (или что-то еще), а вторую папку заполняют имена файлов функциями, которые они будут выполнять. Затем PHP-файл просто содержит вызов функции и запись вывода для Ajax. Мысли?
Любые другие комментарии или советы, прежде чем я начну этот проект, были бы замечательными!
Возможно, я не смог подчеркнуть, насколько сильно Ajax основал это веб-приложение. Codeigniter кажется отличным инструментом для создания веб-страниц или простых веб-приложений, таких как блог. Мое приложение будет немного другим. Как и uTorrent WebUI, мое веб-приложение будет статичным на одной странице, если Ajax выполнит все действия под-крышкой. Кажется немного неудобным использовать Codeigniter для такого проекта.
Существует ли другая архитектура, созданная с таким видом приложения?
Считаете ли вы использование такой структуры, как Codeigniter? Вы знакомы с какими-либо шаблонами проектирования, такими как MVC? Обе из них помогут диктовать местоположение файлов и разделение логики в вашем проекте.
EDIT: Codeigniter использует MVC, что является отличным примером для веб-программирования. Проверьте эти два видео, которые они имеют для учебных пособий. Только около 30 минут в сочетании, и, безусловно, полные хороших знаний, как в плане взглядов на их рамки, так и на проницательность, предлагаемую их структурой папок.
Если вы ожидаете, что это большой проект, я бы настоятельно рекомендовал использовать один из многих установленных фреймворков, уже существующих как Symfony или Zend. Вы были бы:
Но вы, если вы настаиваете на том, чтобы делать это сами.
Я планирую создать файл PHP «core.php», который будет включен в начало каждого файла SINGLE PHP в проекте. Этот файл будет обрабатывать аутентификацию и включать базовые функции. Мысли?
Я не могу достаточно подчеркнуть «не делай этого». Существует правило среди опытных разработчиков PHP, что любой проект с большим файлом core.php, который является предупреждающим знаком плохой разработки, и его следует избегать.
Во-вторых, нет необходимости изобретать велосипед, когда речь заходит об абстрактной базе данных, посмотрите на проекты MDB2 или Doctrine.
Большое количество статических классов также является признаком плохо задуманного развития. Статические классы должны использоваться экономно, поскольку их трудно тестировать и часто не нужно.
Почему бы не иметь один index.php, который обрабатывает все выполнение, а затем имеет файл .htaccess, который будет направлять URL-адреса в правильное местоположение. Это означает, что вы можете войти в систему и проверить ее в одном файле.
Затем у вас может быть условие в верхней части всего вашего другого файла, поэтому они не могут быть напрямую доступны, например:
<?php if(FROM_INDEX!="true") die("<b>ACCESS_ERROR</b><br /><br />Please use the main page instead of accessing this file directly.");
Я также рекомендую Codeigniter, поскольку у этого есть много таких функций, как это уже, и значительно ускорит ваше время разработки.
Я не уверен, насколько сложна система, которую вы ищете. Но недавно я нашел небольшую структуру, которая работает с URL-адресом. https://github.com/ivorychicken/sammy
Если вы не возражаете, чтобы поиграть с ним, вы, вероятно, могли бы использовать его в качестве отправной точки и построить его.