Телефонный справочник

  • Автор темы Автор темы Jmunb
  • Дата начала Дата начала

Jmunb

Новичок
Добрый день.
Недавно потребовалось написать простой телефонный справочник на PHP используя ООП.
Требуемый функционал:
-Удаление
-Добавление
-Изменение
-Проверка на валидность введенных данных
-Вывод сообщений пользователю
-Поиск(Пока не реализовал)

Вот что навоял за вчерашний вечер http://roxm.ru/phonenumber

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

Вложения

  • www.zip
    www.zip
    6,7 KB · Просмотры: 26
Начни с MVC. в интернете дочерта информации. затем подели эту простыню classes на насколько файлов. про sql инъекции ты знаешь, сейчас убери XSS.
 
Я знаю что все не хорошо
Но можно хотя бы пару советов? как жить дальше?
 
Jmunb
тебе AmdY как раз дал пару хороших советов
 
1. Нет никакого смысла смешивать кучу классов в одном файле
2. Смысл писать так:
PHP:
class Number 
{
	private $data;
	private $resultLastReport;
	private $oneNumber;
	private $allNumber;
	
	function __construct() {
		$this->data = false;
		$this->resultLastReport = false;
		$this->oneNumber = false;
		$this->allNumber = false;
	}
}

почему не написать так:

PHP:
class Number 
{
	private $data = false;
	private $resultLastReport = false;
	private $oneNumber = false;
	private $allNumber = false;
	
	function __construct() {
		
	}
}

3. Класс View не отвечает своим требованиям, он должен быть шаблонизирующим классом, то есть в шаблоны ты должен хранить в файлах, а в них конструкции вида <=$var?>. Поэтому класс View должен подставлять туда переменные в нужные места. Самый простой такой шаблонизатов пишется на функциях перехвата вывода ob_...

4. Конструкцию вида:
PHP:
include("sql.php");
Заменить на написание нормального класса с плейсхолдерами и прочим, и писать в виде

PHP:
class Controller
{
	private $error = false;
	private $message = false;
	private $result = false;
	private $route = false;
	
	function __construct() {
		$this->db = new Database();
	}
}

Это в общем виде, там может быть и фабрика и синглтон, как кому на душу ляжет. Но не стоит мешать классы и функции вместе, смотрится не очень.

Как-то так.
 
Если уж на то пошло, почему бы просто не взять готовый фреймворк? легче потратить денек на его изучение, чем месяц пытаться наваять свой велосипед... Хотя с точки зрения обучения и велосипеды полезны ))
 
Денек на ZF? Или Yii? Ну-ну, удачи вам в освоении за денек.
 
Если уж на то пошло, почему бы просто не взять готовый фреймворк? легче потратить денек на его изучение, чем месяц пытаться наваять свой велосипед... Хотя с точки зрения обучения и велосипеды полезны ))
велосипед дает понимание.
 
Ага, я поэтому о полезности написал. Только вот не все водители - автомеханики. По крайней мере, не сразу ;)
 
мы не водители, мы инженеры на заводе. без велосипедов вы не познаете суть, не поймете её.
 
Духовность™
Прежде чем изобретать велосипед, нужно ознакомиться с теорией и посмотреть существующие модели.
 
Спорим, не подерётесь?

Jmunb, я добавил на сайт по ссылке код: <script>alert("virus");</script>

Этот код иллюстрирует две проблемы:

1) в режиме редактирования разрушается HTML элемент input (из-за кавычек);

2) ну, и само содержание скрипта может быть далеко не таким безобидным (AmdY говорил об XSS).
 
Сверху