PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (32): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец

> Найдено сообщений: 468
tato Отправлено: 10 Декабря, 2013 - 00:35:46 • Тема: Удаление символов из слова • Форум: Вопросы новичков

Ответов: 7
Просмотров: 353
Дайте пример строки и что должно получится.
tato Отправлено: 10 Декабря, 2013 - 00:30:36 • Тема: Альтернатива ООП • Форум: Корзина

Ответов: 31
Просмотров: 8725
ТС про Вас есть "поговорка": не читал, но осуждаю.
Да-да стак оверфлоу кишит вопросами перформанса array VS object. Там уже кучу тестов провели и знаете кричать "О, боже! Если сделать 1000 итераций, то ООП код отрабатывает на 0.001 сек дольше! ООП - шлак! Хватайте факелы и вилы!"
короче глупо это.
tato Отправлено: 28 Ноября, 2013 - 04:51:14 • Тема: extends от объекта • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 1371
Есть агрегация и композиция. Это когда объекты одного класса входят в другой.
например:
PHP:
скопировать код в буфер обмена
  1.  
  2. class Test
  3. {
  4.  
  5.     private $_obj;
  6.  
  7.     public function __construct( $obj )
  8.     {
  9.         $this->_obj = $obj;
  10.     }
  11.  
  12.     public function getName()
  13.     {
  14.           return $this->_appendString( $this->_obj->name );
  15.     }
  16.  
  17.     private function _appendString( $string, $prefix = 'pref_' )
  18.     {
  19.         return "$prefix$string";
  20.     }
  21. }
  22.  
  23.  
  24. $std_class = json_decode( $json_data );
  25. $test = new Test( $std_class );
  26.  
  27. echo $test->getName();
  28.  

(Добавление)
еще можно использовать __call() для доступа к методам.
tato Отправлено: 28 Ноября, 2013 - 03:38:45 • Тема: Выбор планшета • Форум: Вопросы новичков

Ответов: 10
Просмотров: 312
Если купите синезубую клаву, то подойдет любой планш, кроме ipad.
У самого ipad mini - так и не нашел нормального редактора, хоть бы notepad++ или sublime. + не поставить mysql, nginx. php - видел в каком-то редакторе можно было консольные скритпы запускать.
tato Отправлено: 28 Ноября, 2013 - 03:31:04 • Тема: Можно ли protected перекрыть private? • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 1291
Если у Вас есть необходимость в этом, то Вы плохо продумали архетиктуру.
Спросите себя зачем делать метод приватным, если он был защишенным?

Предположим у нас есть класс DB в котором происходит подключение к базе данных, от него наследуются абстракция Model. В DB есть метод ::connect() который собсно и выполняет подключение. Мы используем его в MModel, и тут появляется вопрос: дальше когда модели наследуются от Model давать доступ к этому методу не правильно. Хотим сделать его приватным получаем - бугурт, что так делать низя.

Решение это задачи:
Думаем головой, понимаем, что Model не должно наследоваться от DB - профит.
Теперь у нас есть абстакция Model которая принимает объект Db и все.
tato Отправлено: 28 Ноября, 2013 - 03:07:08 • Тема: Собрать все функции в один класс • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 1813
AmsTaFF пишет:

Не совсем "хороший" пример с ПДД, ведь их выучил и свободен, а с программированием увы не так


А что не так-то? В программировании тоже выучил и свободен. И в ПДД и в программировании только опыт поможет понять, что и как, но если Вы не понимаете основ, то все тлен.

Первая строка ТС:
wedoca пишет:
Помогите пожжжалуйста новичку в ООП.

Рассказать как собрать в кучу - это одно, помочь с ООП это другое. По-этому Я и написал:
tato пишет:
По хорошему что бы было ООП, надо разделить все это дело на объекты подумать над инкапсуляцией, сделать абстракцию для моделей, вынисти подключение к бд в отдельный класс(ы) и т.д.


Именно новичку и нужно задумываться о таких вещах, т.к. опытные на автомате прорабатывают это все
tato Отправлено: 22 Ноября, 2013 - 05:36:44 • Тема: Как сделать временный подарок пользователю? • Форум: Вопросы новичков

Ответов: 4
Просмотров: 170
Если период времени небольшой, то берите redis или в memcached складывайте, не нагружайте mysql мелочевкой всякой.

У memcache есть время жизни самое простое положить туда, и проверять, есть запись показываем подарок, нет записи не показываем. кататак.
tato Отправлено: 21 Ноября, 2013 - 23:25:12 • Тема: Недорогой надежный хостинг? • Форум: Прочее

Ответов: 8
Просмотров: 104
sweb - счастье радость. 1500 в год.
tato Отправлено: 21 Ноября, 2013 - 00:00:01 • Тема: Собрать все функции в один класс • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 1813
AmsTaFF пишет:

По-моему новичку, который только знаком с теорией рановато задумываться обо всех этих вещах


По-моему садясь за руль авто многие давят на пидаль и едут, однако почему-то надо знать ПДД.

Судя по вопросу ТС с теорией Он знаком не очень, так почему бы не подсказать человеку, что лучше сейчас подтянуть?
tato Отправлено: 20 Ноября, 2013 - 23:54:31 • Тема: Что подразумевается в этом реглярном выражении ? • Форум: Регулярные выражения

Ответов: 4
Просмотров: 264
[^/]+ - один или более символов отличных от "/"
\. - точка (сама по себе точка обозначает любой символ, в данном случае она экранирована слешем и означает символ точки)
html - строгое совпадение "html"
~ - конец патерна
tato Отправлено: 20 Ноября, 2013 - 08:52:25 • Тема: Что подразумевается в этом реглярном выражении ? • Форум: Регулярные выражения

Ответов: 4
Просмотров: 264
Строка начинается с /catalog/ затем один или более символов кроме "/" затем "/" после этого одно или более слово
tato Отправлено: 20 Ноября, 2013 - 03:11:18 • Тема: Архитектура приложения • Форум: Программирование на PHP

Ответов: 6
Просмотров: 533
Panoptik пишет:
так как в модулях в моем случае (Yii)

Что ж Вы сразу не сказали, что на Yii (=

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

Так же в конфиге приложения можно задать директорию где лежат представления модуля
PHP:
скопировать код в буфер обмена
  1.  
  2. 'modules' => array(
  3.     'MyModule' => array(
  4.         'layoutPath' => 'protected/views'
  5.     )
  6. )
  7.  


Что бы обратится к представлению из другого контроллера используем два слеша:
PHP:
скопировать код в буфер обмена
  1.  
  2. $this->render( '//site/_login_form' );
  3.  
tato Отправлено: 20 Ноября, 2013 - 02:42:06 • Тема: Собрать все функции в один класс • Форум: Объектно-ориентированное программирование

Ответов: 7
Просмотров: 1813
Делаете файл например Model.php в нем пишите класс:
PHP:
скопировать код в буфер обмена
  1.  
  2. class Model
  3. {
  4.     public function dbRequest( $table, $sort )
  5.     {
  6.         // Ваш код
  7.     }
  8.  
  9.     public function propertyesKey( $prop_id )
  10.     {
  11.         // Ваш код
  12.     }
  13.  
  14.     // и т.д. для каждой фуекции
  15.  
  16. }
  17.  


Т.е. все ваши функции становятся методами класса Model.

Далее в подключаете файл нде надо:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <!doctype html>
  3. <html>
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>bElement</title>
  7. </head>
  8. <body>
  9. <pre>
  10.     <?php require_once 'Model.php'; ?>
  11.  
  12.     <?php
  13.        $model = new Model;
  14.        print_r( $model->elementID( 778 ) );
  15.    ?>
  16. </pre>
  17. </body>
  18. </html>
  19.  

В коде выше мы сначала подключили файл с классом Model, далее создали его экземпляр ($model = new Model;) и в конце вызвали метод elementID()

По хорошему что бы было ООП, надо разделить все это дело на объекты подумать над инкапсуляцией, сделать абстракцию для моделей, вынисти подключение к бд в отдельный класс(ы) и т.д.

Еще кстати заморочиться автолоадом
tato Отправлено: 19 Ноября, 2013 - 02:00:02 • Тема: Архитектура приложения • Форум: Программирование на PHP

Ответов: 6
Просмотров: 533
Если много ифов получается, то делать "дубликат", если парочка, то можно и один.
Можно часть в виджеты перенести, например генерацию меню, что бы в шаблон вставить, что-то такое widget( 'Menu', $params ); и все, а уже в самом виджете рулить по обстановке.
tato Отправлено: 19 Ноября, 2013 - 01:51:33 • Тема: Проблемы с "ООП" • Форум: Вопросы новичков

Ответов: 35
Просмотров: 1277
likvidator пишет:

и если я добавлю 1 поле в таблицу,то будет писец?.


А сделайте модель для таблицы, с перечислением полей, а где нужно дергайте через метод этой модели, например Post::inst()->getAllFields(), а при добавлении нового поля в таблицу добовляете описание этого поля в модель и все.

Страниц (32): В начало « ... 5 6 7 8 [9] 10 11 12 13 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB