Могу ли я получить помощь в исправлении моего маленького проекта для начинающих? - PullRequest
3 голосов
/ 27 октября 2010

Я впервые публикую что-то подобное. Я полный n00b в программировании / php. Я пытался понять все учебники и хотел создать своего рода структуру для создания базовых проектов для веб-БД / приложений. Я придумал несколько файлов для грубых операций, которые, как я знаю, действительно ужасный код. Мне было интересно, могу ли я получить какой-нибудь совет по продвижению этой «основы» на следующий уровень. Я не очень хорош в ОО, но я понимаю концепции, поэтому я стал более функциональным. Я знаю, что песни грубые, мне не нужна помощь в признании этого.

Мне нужна помощь по вызовам из базы данных. Я понимаю, что должен использовать PDO (чтобы помочь с инъекцией), но я не уверен, как преобразовать этот код в эту структуру. Я также понимаю, что по крайней мере я должен использовать функции mysqli. Опять же, n00b.

Мне также известно о проверке и дезинфекции данных, но, опять же, будучи настолько новым для этого, я не знаю, с чего начать. Особенно, если я хочу держать его крепким и маленьким. Комментарии забавны с точки зрения программистов, но вы работаете с тем, что у вас есть. Я пытаюсь понять MVC и быть в состоянии связать AJAX и шаблоны / скины, но суть в том, чтобы работать с базами данных.

Мне нравится, как существует один файл конфигурации, который работает со всеми остальными файлами, и как это приводит к небольшим файлам для индексации, чтения и удаления. Остальные становятся немного дольше. Не то, что включение файлов делает меня крутым или что-то еще.

Я думаю, что мне ужасно не удается понять MVC и структурировать проект так, чтобы его было проще поддерживать и адаптировать. Я также понимаю, что в этих php-файлах много html, что тоже нет-нет. Как заполнить пробелы от того, что я знаю (я знаю, что делает каждая строка каждого файла) до того, что я должен знать.

Код можно найти здесь (возможно, он не достоин sourceforge, но я хочу помочь другим научиться так же, как и я).
https://sourceforge.net/projects/eleete/files/

Ответы [ 4 ]

3 голосов
/ 27 октября 2010

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

Однако, если вы все еще хотите создать что-то, самое важное - это создать повторно используемый и легко понятный код.Например, если вы хотите создать записи БД для таких вещей, как страницы, вам нужно создать для этого функции, в которые можно передавать переменные, такие как заголовки и т. Д. Хороший способ начать - создать функции для сбора данных из вашегоБД, например, siteinfo () может быть функцией, которая возвращает массив, полный информации о сайте.Чтобы убедиться, что каждый файл имеет доступ к таким функциям, вам понадобится глобальный файл, например functions.php, который вам нужно будет включить в каждый из ваших других файлов.

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

1 голос
/ 27 октября 2010

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

Одно из ключевых качеств любого родаAPI или фреймворк - это понятие абстракции.Короче говоря, когда вы обнаруживаете, что повторяете код, ищите, где повторение может быть удалено.Хитрость в этом при создании фреймворка состоит в том, чтобы сделать его расширяемым и удобным в использовании способом, чтобы у вас были части, основанные друг на друге.Другими словами, абстракции могут скрывать другие абстракции.Например, все очень хорошо абстрагировать работу по сборке оператора SQL UPDATE из списка полей, но почему страница приложения должна проверить правильность списка полей?Поместите это позади другого слоя, который может быть обучен тому, какие поля являются допустимыми для определенного объекта.

Еще одним ключевым качеством, которое возникает в этой точке, является рефакторинг.Фраза «будь готов выбросить первого» иногда встречается в кругах программистов.На самом деле это означает, что вы всегда должны быть открыты для идеи переписывания кода, потому что вы думали о лучшем способе сделать это.Даже если вам нужно пересобрать код, который его вызывает.

1 голос
/ 27 октября 2010

Вам будет намного лучше, если использовать чистую простую среду. Поскольку вы новичок в этом, я бы порекомендовал CodeIgniter за простоту и скорость. Он помогает внедрить среду MVC, с которой вы еще не совсем знакомы, имеет все встроенные модули, которые вы, вероятно, ищете, и имеет достойное сообщество. Будучи Zend-парнем, я, вероятно, должен был бы предложить это, но это определенно не самый легкий способ начать.

MVC и OO - это концепции, которые вы действительно должны хорошо изучить, прежде чем идти вперед. Этот урок . Существуют десятки праймеров MVC, но по сути это сводится к разделению вашего уровня данных, уровня представления и т. П.

PDO не обязательно должен быть безопасным, вам просто нужно выйти из SQL с Mysql_escape_string или подобным. Я на самом деле не фанат PDO из-за гаечных ключей, которые он бросает в отладку.

Поскольку вы новичок, я бы также порекомендовал Xdebug на вашем сервере для устранения неполадок. Это существенно сокращает время отладки.

1 голос
/ 27 октября 2010

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

У меня сложилось впечатление, что ты откусил немного.Боюсь, у вас также есть предположение, что вы можете написать идеальную программу с самого начала, что является бесполезным мифом, независимо от того, как долго вы работаете в отрасли.

Что касается первогонаблюдение, я бы порекомендовал выбрать простую проблему и попытаться ее решить.Моя любимая рекомендация - простые карточные игры, например, блэкджек.Игры в кости, такие как кости, также делают для коротких, достижимых и интересных программ .Цель этих проектов будет состоять не в том, чтобы построить структуру кода, а в том, что вы умеете разбирать проблемы и превращать их в решение, которое компьютер может понять и решить для вас - ваш код.от поражения рано.Начиная веселье, вы будете мотивированы через неизбежные препятствия, которые побудят вас выбросить компьютер из закрытого окна.

Все, что сказано, мы все еще здесь, чтобы помочь!Конкретные вопросы по конкретным проблемам, как правило, получают здесь наилучшую обратную связь, а также вопросы, которые демонстрируют, что вы выполнили хотя бы небольшую домашнюю работу в плане ее решения.Сообщество Stack Overflow будет рад помочь вам, но не раздавать.Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...