Организация файлов проекта php

Я новичок в веб-разработке, недавно я создал веб-приложение с Php/Mysql, и теперь я хочу разместить его на сервере, но я чувствую, что моя организация файлов плохая (очень плохая).

структура файлов моего проекта выглядит примерно так

|--XAMPP htdocs
    |--MyProject
        |--config.php
        |--functions.php
        |--header.php
        |--nav.php
        |--index.php
        |--js   
        |--css
        |--images
        |--register
            |--index.php
        |--messages
            |--inbox
                |--index.php
                |--handle_inbox.php
            |--outbox
                |--index.php
                |--handle_outbox.php
            |--trash
                |--index.php
                |--handle_trash.php
            |--uploaded_files
        |-- ...

что я могу сделать, чтобы улучшить эту структуру и сделать ее безопасной?!


person Az.Youness    schedule 26.02.2016    source источник
comment
Очень хороший вопрос, но ответ основан на мнении. Кстати, вы не можете иметь один и тот же каталог несколько раз (сообщения) в одном и том же корне.   -  person B001ᛦ    schedule 26.02.2016
comment
Трудно комментировать безопасность, не зная вашего проекта.   -  person Progrock    schedule 26.02.2016
comment
@Progrock, по крайней мере, как я могу сделать файл config.php и каталог uploaded_files недоступными!   -  person Az.Youness    schedule 26.02.2016
comment
Например, если вы используете Apache, есть некоторые настройки, позволяющие избежать использования файла (например, config.php) в качестве сервера и заблокировать содержимое каталога.   -  person Ed de Almeida    schedule 26.02.2016
comment
@BBeta, пожалуйста, найдите мой ответ ниже. Также общая рекомендация будет заключаться в том, чтобы, как только вы новичок в разработке PHP, использовать даже простую PHP Framework, это позволит вам структурировать код, файлы и организовать их в хорошем архитектурном стиле. Вы можете начать с CodeIgniter, он очень легкий.   -  person Farside    schedule 26.02.2016
comment
@Farside Я пишу большую часть кода для проекта, его невозможно переписать в фреймворке, даже если это возможно, я хочу узнать больше о PHP, прежде чем использовать какой-либо фреймворк, для вашего ответа я сейчас пытаюсь понять, как перечисленные фреймворки делают работа ...   -  person Az.Youness    schedule 26.02.2016
comment
@EddeAlmeida, у вас есть ссылки, пожалуйста?   -  person Az.Youness    schedule 26.02.2016
comment
@Farside полностью прав в своем ответе. Даже если вы не хотите (или не можете) переписывать весь свой проект с использованием фреймворка, по крайней мере, вы должны внимательно следить за фреймворком и использовать его методы обеспечения безопасности. Я все равно размещу несколько ссылок.   -  person Ed de Almeida    schedule 26.02.2016
comment
serverfault.com/questions/174708/   -  person Ed de Almeida    schedule 26.02.2016
comment
stackoverflow.com/questions/2679524/   -  person Ed de Almeida    schedule 26.02.2016
comment
@EddeAlmeida спасибо за эти полезные ссылки   -  person Az.Youness    schedule 26.02.2016


Ответы (2)


Пол М. Джонс провел фантастическое исследование общей практики десятков тысяч проектов github в области PHP. На основе этого исследования он составил стандартную структуру файловой системы. Взгляните на Standard PHP Package Skeleton и создайте на его основе свой проект.

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

person Eric Poe    schedule 07.07.2017

Рекомендуется скрыть весь скрипт от прямого доступа и иметь отдельный каталог public.

Вы можете проверить лучшие практики из разных фреймворков, как они организуют каталоги:

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

person Farside    schedule 26.02.2016