2014-02-06 7 views
0

Так что была отличная обратная связь, вернулась и много читала о ООП. Так вы скажете, что это правильно? Где я задал переменные в index.php, вы могли бы использовать pdo для запроса базы данных, чтобы захватить пользовательские данные, а затем сказать, цикл объектов?Правильно использовать классы и объекты?

index.php

<?php 
// This is where you could query the db? 
$firstname = "Vaughan"; 
$lastname = "Slater"; 
$age = 20; 

// Create two new users 
$user1 = new user($firstname, $lastname, $age); // From variables 
$user2 = new user("Tom", "Jones", 41); // Static set 

// Output new users & could you then loop this to pull a list of users from a query 
echo print_r($user1, TRUE); 
echo print_r($user2, TRUE); 
?> 

class.php

class user 
{ 
    private $_firstname; 
    private $_lastname; 
    private $_age; 

    public function __construct($firstname, $lastname, $age) 
    { 
     $this->_firstname = $firstname; 
     $this->_lastname = $lastname; 
     $this->_age = $age; 
    } 
} 

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

+0

Выглядит хорошо для меня. У вас есть вопрос? – Asaph

+0

Этот вопрос был бы лучше, если бы его попросили в Code Review. Кроме того, хорошо это или нет - что произойдет, если у вас есть 50 записей, описывающих вашего пользователя? Или, если у некоторых пользователей есть свойства, которых нет у других пользователей? Например, многие люди не имеют среднего имени. У других людей более двух имен. У некоторых даже есть 10. –

+0

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

ответ

1

Основы выложены, но теперь идет сложная часть.

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

$users[] = new user($row['firstname'], $row['lastname'], $row['age']); 

Примечание Вы можете проинструктировать с `Pdo_Mysql» непосредственно получить объекты вместо строк, так что копирование будет выполнено автоматически.

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

Это быстрый указатель на wiki, показывающий, как использовать pdo_mysql.

Вам нужно будет сделать эти проходы, если вы хотите расслоить приложение, что является хорошей (лучшей?) Практикой.

Таким образом, каждый цикл будет сделан в другом пласте и данные передаются от одного слоя к следующему:

persistence (queries DB and populates $users[] array) 
    | 
    v 
business  (process data according to business logic) 
    | 
    v 
presentation (render the results in HTML) 

Сверху вниз путь данные передаются trhough толщ.

Как правило, страты показаны точно противоположным образом (снизу вверх).

+0

Спасибо, что это здорово слышать, и я (думаю?) Понимаю, о чем вы говорите, не так ли? code: http://puu.sh/6M8rB.png – user3245541

+1

Да, но вам придется циклически перебирать результирующий набор и не нуждаться в промежуточных переменных. Я добавил ссылку на некоторые хорошие примеры (посмотрите на 'pdo_mysql' выше). – pid

+0

Я действительно смотрел на эту страницу раньше, я прочитал ее снова. Не могли бы вы рассказать мне, почему http://puu.sh/6MZxD.png не работает? Я не уверен, где я ошибся .. страница просто белая, и ничего на ней. – user3245541

Смежные вопросы