Цитата (Игорь_Vasinsky @ 17.03.2015 - 16:31) |
а много вообще общего у обертки класса для класса и функция остановки скрипта и вывода ошибки?
или тебя тупо зацепила ссылка на древнюю статью с global ? |
В той обертке тот же or die...
Ты предложил ставить его у каждого запроса. В чем профит? И причем тут классы для классов... Странные вы люди. И где там globаl... и с чего ты взял, что статья про него устарела?
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Нате вот. Не говорю, что панацея, но принцип можно посмотреть.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
volter9
17.03.2015 - 21:22
WhiskasА где тут ООП? Может быть Вы имели ввиду миграция с функций на классы (т.к. тут нету ООП)?
Зачем вообще класс Comments если в нем ничего не происходит связанное с добавлением комментария? Сделали хотя бы вот так вот:
class Comments {
private $db;
public function __construct (mysqli $db) {
$this->db = $db;
}
public function insertComment (array $comment) {
$sql = "
INSERT INTO comment (id, name, email, text)
VALUES ('{$comment['id']}', '{$comment['name']}', '{$comment['email']}', '{$commentx['text']}'
";
return $this->result = $mysqli->query($query);
}
}
$mysqli = new mysqli("----","----","","----");
if ($mysqli->connect_errno) {
echo "Не удалось подключиться к MySQL: ". $mysqli -> connect_error;
}
$comment = new Comments($mysqli);
$comment->insertComment($_POST);
Это все равно не ООП, но уже лучше
_____________
Мой блог
Игорь_Vasinsky
17.03.2015 - 21:30
Цитата |
Ты предложил ставить его у каждого запроса. В чем профит |
я предложил его использовать на время отладки, там где душе угодно - не надо додумывать
Цитата |
И где там globаl... и с чего ты взял, что статья про него устарела? |
Т.е. следующие моменты - для тебя нормальное дело?
глушить ошибки
Цитата |
$link = @mysqli_connect( |
выводить ошибку пользователям
Цитата |
or die(mysqli_error($link)); |
использовать глобальные переменные
тогда итак сойдёт.
единственное что нормально, как я вижу - использование статического класса
Цитата |
И причем тут классы для классов |
да потому что ТС пишет класс обёртку для класса mysqli - а ты про какой - то die
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
17.03.2015 - 21:31
volter9
имелся ввиду ооп стиль, хотя да, стилецй таких нету и тд и тп. ну думаю ты понял про что я.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
17.03.2015 - 21:37
Цитата |
Нате вот. Не говорю, что панацея, но принцип можно посмотреть. |
ну причём тут это то?
да, там отладчик матёрый, ну ТС и достаточно mysqli->error в принципе.
речь не об этом.
хотя там не то что бы не понятный момент - это всем моментам момент)
Цитата |
$out = array('', ''); |
типа создать пустоту (если ошибки нет), но нарисовать пустой красный тег
'<b style="color:red">'. $out[1]
.'</b>',
.... странно всё это мне кажется.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
Цитата |
я предложил его использовать на время отладки, там где душе угодно - не надо додумывать |
Ну и сколько запросов нужно будет перелопатить после твоей отладки? На то и обертка, чтобы сделать это один раз.
Цитата |
Т.е. следующие моменты - для тебя нормальное дело? |
В обертке - конечно нормальное. Как раз после отладки и нужно в одном месте это изменить.
Цитата |
использовать глобальные переменные |
Дальше не судьба почитать? Нужно людям всякую дурь советовать?
Цитата |
да потому что ТС пишет класс обёртку для класса mysqli - а ты про какой - то die |
Ну во первых ничего не мешает использовать принцип обертки и в классе. А про die - это ты насоветовал. В каждом запросе. Убивать надо сразу таких.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата |
типа создать пустоту (если ошибки нет), но нарисовать пустой красный тег |
Это отладка. Тут валидация побоку. Гораздо проще сделать так, чем вставлять кучу проверок.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Игорь_Vasinsky
17.03.2015 - 21:53
ты короче не понял что ТС надо, ну и как всегда свою школу качаешь (мне в принципе пофиг - когда по существу, а не в тему).
но не в одной статье я не увидел, может проглядел тот момент - когда это нужно использовать, а когда нет.
продолжай, что тут скажешь.
тс ни слова ни сказал про обёртку отладчик, я запарился уже об этом тебе говорить.
как поймать ошибку ВО ВРЕМЯ ОТЛАДКИ я написал - нафига остальная писанина для красивого вывода ошибок нужна? ну понятно.. я об этом я выше написал в этом посте.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
17.03.2015 - 21:55
ну в итоге - мне тож тут влом тебе строчить пост за постом. поэтому беседу на эту тему с тобой я просто проигнорирую.
а ты обязательно пиши и пиши какой я неправильный и советую фигню, которая кстати помогла + тс получил ещё несколько нужных рекомендаций.
удач.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
Цитата |
как поймать ошибку ВО ВРЕМЯ ОТЛАДКИ я написал - нафига остальная писанина для красивого вывода ошибок нужна? ну понятно.. я об этом я выше написал в этом посте. |
Я тоже написал. За такие советы нужно руки отрывать. Ставить or die в каждом запросе...
Не хочешь красивых ошибок - не делай. Но почему вдруг такая реакция:
Цитата |
а вообще - обёртка там и нафиг не нужна. |
Как раз и нужна. Именно для того, чтобы не искать твои сопли по всему проекту. В одном месте всего нужно поставить or die. В обертке. И потом уже думать, логировать, выводить, расскрашивать, менять на ексепшен и так далее.
Какая нахрен школа, это здравый смысл и рациональность. Я бы промолчал, если бы ты просто посоветовал. Но ты охренел на столько, что решил советовать or die в каждом запросе, утверждая, что обертка нафиг не нужна. И до сих пор не уймесся.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Игорь_Vasinsky
17.03.2015 - 22:16
ты себе руки оторви, а то тут больше никого не найдётся.
нахер писать обёртку для класса mysqli чтобы выводить ошибки ?
вообще нужно ловить исклучения если речь о классах
нахер они пользователю?
где ты сказал про режим отладки и рабочую версию? где у тебя в коде это учитывается?
ты ошибки собаками глушишь и используешь глобальные переменные.
короч ты задрал, толи старый в конец, толи ещё чё.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
17.03.2015 - 22:20
кокой бля ваще проект? человек говнокласс пишет.
и сопли... сходи к окулисту.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Whiskas
18.03.2015 - 04:05
После долгих и упорных поисков я всё же это нашел и сделал соединение без глобала. И увидел, что в этой теме уже 2-ая страница с более менее решенной проблемой и жаркой дискуссией))))))
По теме, я только изучаю ООП, да и PHP. Мне нужно было соединение, найти ошибку. Да и в принципе:
Игорь_Vasinsky посоветовал ошибку вывести, что в принципе помогло найти ее. Да и много чего другого, за что спасибо большое ему)
Волтер9 написал класс, решающий мою траблу, но возникает другая трабла - все время придется делать конструктор на класс? А, если конструктор понадобиться для другого? Или такое случается очень редко или чего еще?
twinИ в таком случае, выходит нужен синглтон или статика? Или как то можно единожды создать класс для постоянного вывода соединения?
Что то типа:
class Database {
protected $mysqli;
public function __construct($host,$user,$password,$db) {
$this -> mysqli = new mysqli($host,$user,$password,$db);
if( $mysqli -> connect_errno) {
echo "Не удалось подключиться к MySQL: ". $mysqli -> connect_error;
}
}
}
class Foo {
protected $database;
public function __construct(Database $database) {
$this->database = $database;
}
--- Вот здесь вывод всего этого, но я так и не понял как это сделать ---
}
$dbs = new Database('----', '----', '', '----');
$comment = new Foo($dbs);
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.