Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: ооп программирование
Форумы портала PHP.SU » » Объектно-ориентированное программирование » ооп программирование

Страниц (1): [1]
 

1. vanicon - 14 Июня, 2011 - 12:04:15 - перейти к сообщению
Прочитал статью на сайте по поводу ооп программирования, и решил написать какой нибудь класс который может пригодиться мне в дальнейшим, вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Content-Type: text/html;charset=utf-8");
  3. //Создаем новый класс post
  4. class posts {
  5. //функция для подключения к БД
  6. function bd_connect($db_name,$db_server,$db_user,$db_pass){
  7. mysql_connect($db_server,$db_user,$db_pass);
  8. mysql_select_db($db_name);
  9. mysql_query("SET NAMES 'utf8'");//указание кодировки для mysql
  10. }
  11. //функция для выборки записей из БД
  12. function echo_posts(){
  13. //цикл для выборки записей
  14. $sql = mysql_query("SELECT title,date FROM posts");
  15. while ($post = mysql_fetch_array($sql, MYSQL_BOTH)) {
  16. echo $post['date'].' '.$post['title'].'<br>';
  17. }
  18. }
  19. //функция для изменения записей в БД
  20. function edit_posts($id,$title,$date){
  21. mysql_query("UPDATE posts SET title = '".$title."',date = '".$date."' WHERE id = '".$id."'");
  22. }
  23. //функция для добавления записей в БД
  24. function new_posts($title,$date){
  25. mysql_query ("INSERT INTO posts (title,date) VALUES('".$title."','".$date."')");
  26. }
  27. //функция для удаления записей в БД
  28. function delete_posts($id){
  29. mysql_query ("DELETE FROM posts WHERE id = '".$id."'");
  30. }
  31. }
  32.  
  33. //создаем объект, posts
  34. $object = new posts;
  35. $object->bd_connect('test_php','localhost','root','');//подсоеденяемся к БД
  36. $object->edit_posts('1','Класс post','2001-06-15 12:31:59');//изменяем запись с id 1
  37. $object->new_posts('Класс post2','2011-06-15 12:32:59');//добавляем новую запись в БД
  38. $object->delete_posts('1');//удаляем запись у которой id 1
  39. $object->echo_posts();//выводим все записи из БД
  40.  

Этот класс должен создавать, удалять записи от туда, изменять их (ну не класс сам конечно а функции внутри него)
И у меня возник вопрос, чем этот код написанный на классах и объектах будет более удобен чем простые функции, ведь тот же самый код можно перезаписать и будем почти одно и тоже, или же я все таки привел не удачный пример реализации ооп?
2. STRELOK - 14 Июня, 2011 - 12:36:18 - перейти к сообщению
ООП это не только набор функций в классах, в основном это наследование, абстракция, переопределение методов и многое другое)
3. vanicon - 14 Июня, 2011 - 13:10:12 - перейти к сообщению
В статье про ооп написано что этот механизм просто в понимании, но мне почему то не удается понять смысл применения этого механизма на практике, может кто нибудь сможет все же объяснить как работает этот механизм и где его стоит применять, а где нет.
Ну или хоть какой-нибудь примерчик выгодного для программиста использования ооп чтобы явно видно было простоту этого механизма
4. White - 14 Июня, 2011 - 13:14:19 - перейти к сообщению
Будет иметь хоть какой то смысл, если реализовать в качестве синглтона (ограничив возможное число обьектов класса до одного) и запихнув вашу функцию bd_connect(а лучше db_connect) в конструктор. Можно также добавить в функциях что-то вроде
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $this->log = 'Имя Функции '.$_SERVER["REQUEST_URI"].' '.time().'\r\n';
  3.  

Будете знать сколько раз и какие функции вы вызывали.
5. Stierus - 14 Июня, 2011 - 17:07:40 - перейти к сообщению
http://forum.php.su/topic.php?fo...pic=7020&p=2

 

Powered by ExBB FM 1.0 RC1