<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

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

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Осваиваю ООП на практике
19.12.2012 11:15:56 Осваиваю ООП на практике Сообщение #1
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

Здравствуйте всем!!! Я всё таки решил попрактиковаться с ООП и помоему ничего не получается, скажите пожалуйста про мой первый класс в жизни... скажите где ошибки и как их исправить, скаижте где нормально написано... Для меня очяень важно мнение знающих ООП так как я не смогу двигаться дальше если не буду знать где ошибки и как их исправить. Помогите пожалуйста
<?php
class User {
public $mysqli;
public $error;
public function getError($error) {
return $this->error = $error;
}
public function connectDB() {
return $this->mysqli;
}
public function registerUser ($login, $password) {
$login = trim(htmlspecialchars($login));
$password = trim(htmlspecialchars($password));
if (empty($login) AND strlen($login) > 3) {
unset($login);
return $this->getError('Вы не ввели Логин');
}
if (empty($password) AND strlen($password) > 6) {
unset($password);
return $this->getError('Вы не ввели Пароль');
}
if (isset($login) AND isset($password)) {
//$mysqli = new mysqli("localhost", "Admin", "udiram04", "oop";
$mysqli = $this->connectDB();
$isset_login = $mysqli->query("SELECT `login` FROM `reg` WHERE `login` = '".$login."'";
$arr_isset = $isset_login->fetch_assoc();
if (!$arr_isset['login'] == "" {
return $this->getError("Такой логин существует";
}
$mysqli->query("INSERT INTO `reg` (`login`, `password`, `date`) VALUES ('".$login."', '".$password."', UNIX_TIMESTAMP())";
$id = $mysqli->insert_id;
$result = $mysqli->query("SELECT * FROM `reg` WHERE `id` = '$id'";
$arr = $result->fetch_assoc();
return "Ваш логин: ".$arr['login']."<br />Ваш пароль: ".$arr['password']."<br />Дата регистрации: ".date("d:m:y h:s", $arr['date']);
}
}
public function deleteUser($id_user) {
$mysqli = $this->connectDB();
$delete_user = $mysqli->query("SELECT `id` FROM `reg` WHERE `id` = '$id_user'";
$arr_del_user = $delete_user->fetch_assoc();
if (empty($arr_del_user['id'])) {
return $this->getError("Такого пользователя нет";
}
else {
$del_user = $mysqli->query("DELETE FROM `reg` WHERE `id` = '$id_user' LIMIT 1";
if ($del_user === true) {
return $this->getError("Пользователь успешно удалён";
}
}
}
}
?>


<?php
require_once "register.php";
if (isset($_POST['submit'])) {
$mysqli = new mysqli("localhost", "Admin", "udiram04", "oop";
$user = new User();
$user->mysqli = $mysqli;
echo $user->registerUser($_POST['login'], $_POST['password']);
}
echo <<<TXT
<form action = "" method = "post">
<input type = "text" name = "login" />
<input type = "password" name = "password" />
<input type = "submit" name = "submit" />
</form>
TXT;
?>
Профиль Ответить
19.12.2012 12:08:06 Осваиваю ООП на практике Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Всё достаточно неплохо, но слишком много обязанностей у одного объекта: и пользователей регистрировать, и ошибки выдавать, и ещё с базой данных работать. За всё это должны отвечать отдельные классы.
Профиль Ответить
19.12.2012 12:26:46 Осваиваю ООП на практике Сообщение #3
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

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

P.S. За мнение спасибо
Профиль Ответить
19.12.2012 13:14:54 Осваиваю ООП на практике Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

А что должен делать класс ошибок? Зависит всё от задачи. Иногда достаточно парсить какой-нибудь ini-файл с различными сообщениями и возвращать информацию, например, о некорректном логине. Иногда требуется, чтобы при возникновении особых ошибок отправлялся e-mail администратору об этом, для этого потребуется ещё один класс, занимающийся отправкой e-mail.
Профиль Ответить
19.12.2012 13:31:43 Осваиваю ООП на практике Сообщение #5
malina95

malina95

Мастер

Мастер

Дата регистрации:
15.07.2012 07:13:44

Сообщений: 208

Всё ясно, нужно каждое действие которое вызывается не один раз помещать в отдельный класс... А вы можете выложить класс для работы с бд? Просто брать левый класс в котором куча мусора не охота... Выложите пожалуйста класс и его использование. ОООчень прошу
Профиль Ответить
19.12.2012 17:00:07 Осваиваю ООП на практике Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Нужно писать каждый раз отдельный класс для работы с базой данных. Если всё время копировать одно и то же, то получится как раз та самая мусорка, где 90% вообще не используется. В данном курсе http://srs.myrusakov.ru/php создавался подобный класс под конкретные задачи самого сайта.
Профиль Ответить