@runcore да узбагойся ты подкинул хороший пример использования функций я его запомню... Как сделать на одной функции возврат а на другой нет просто вызвав одну и туже функцию с одним и тем же кодом. Но знаешь по сути клал я на эти две функции при релизе движка их там не будет. Поэтому я на них даже не смотрел, я сам держусь такого мнения при разработке всё что можно повторять должно лежать в функции для вызова, всё что дублируется, не должно дублироваться а должно вызыватсья одной строчкой. Но эти функции бесполезные, поэтому они там валяются уже два месяца не переделанные, они мне нужны были для тестов и пысал я их быстро на самом деле ходовые функции в двиге это PHP: $this->prepareData(); // and $this->execute() ; Всё по сути остальное всё лишее ну ob_start на крайняк можно оставить мало ли чё будет. Я не считаю себя там ппц гуру, и не претендовал я там на должность но то что написано в их требованиях, знаем и делаем это. Единственное не изучали битрикс, потому что не вижу смысла его изучать. Когда страница с битриксом грузится две недели, по стандарту, а моя с выгрузкой из множества к строк в бд грузится быстрей. Вон чувак оплатил битрикс вылел туда базу из 1с и сидит радуется а я смотрю и у меня глаз дёргается когда кружок наверху крутится дольше чем положена
А вообще на любом белом платье можно найти чёрненькую точку, поэтому мне кажется парное программирование, это чёткая вещь, но напарника у меня не так что соряньте так что явно на релизе будет целая куча таких вещей которых меня носом потыкают и я их перепишу, после таких вот тыков. Говорил же сам до релиза ещё далеко, framework назвать полноценным нельзя, это так на коленке пишу, развиваюсь но когда будет релиз поверь я тебя удивлю он будет исправно работать и там будет поминимому гавно кода, так перед релизом почистятся все функции типа повторяющихся и тд. Просто достал обзываться, я очень много времени трачу на своё самообразование, я целыми днями штудирую даже специализированную литературу читаю по ООП, и пробую разные методики. И я уверен даже специалисты в крупных фирмах сидят и читают такую литературу, каждый божий день, иначе они не были специалистами но и не надо меня к уровню джуниора приравнивать я вполне в самостоятельной форме способен написать что-то сам без проверки, чтобы это нормально работало, и поминимому гавно кода. всё зависит от сроков написания проекта. --- Добавлено --- по удалял лишнее и сократил повторение https://github.com/askanim/bike_001/compare/master...LaravelForKettle:patch-5 --- Добавлено --- есть люди которые знают больше меня поэтому я и спрашиваю всё что у меня в голове имеет сомнение. Мне не стыдно обосраться так как после обсирания начинается просветление.
@runcore почему ? по идее в теории должна возвращать... или я уже поплыл чё то. Ща секу мозги всрались. Я беру вызываю процедуру которая не чего не возвращает! А просто исполняет код я возвращаю просто исполнение этой процедуры, а вернёт ли она мне полученный массив ? --- Добавлено --- Ааа. точняк она так не хера не вернёт. Она же ссылается на метод, и только отправляет его без возврата в результате переменная к которой будет присвоена функция будет пустой. --- Добавлено --- В теори тогда только вот так можно сделать. PHP: public function contGetDate1 ($value) { $this->value($value); $newArray = []; $newArray['newObject'] = new $this->newObject(); $newArray['newMethod'] = $this->newMethod; return $newArray; } public function also($vozvrat, $parameters, $try = 1) { if ($parameters != Null) { if ($try == 1) { return $vozvrat['newObject']->$vozvrat['newMethod']($parameters); } else { $vozvrat['newObject']->$vozvrat['newMethod']($parameters); } } else { $vozvrat['newObject']->$vozvrat['newMethod'](); } } public function controller2 ($value, $parameters = Null) { $vozvrat = $this->contGetDate1($value); $this->also($vozvrat, $parameters, 0); } public function getData2 ($value, $parameters = Null) { $vozvrat = $this->contGetDate1($value); return $this->also($vozvrat, $parameters); } Впервый раз написал не верно, переписал.
@igordata Во ты здесь подскажи пожалуйста, что тут можно сделать лучше и как быть но правда конечно нету полно охвата движка и не понятно что я делаю... Потому что выдран кусок из системы... но пока сам понимаю что рановато для релиза, и поэтому не хочу выкладывать всё на обозрение. Я ещё не готов к запуску его. https://github.com/LaravelForKettle...41bc66e9ea1e7b4e6abd56478fd780d10/controllers
Суть того что я хочу реализовать это передачу массивов из моделей, во вью, и возлагаю эту задачу на контроллеры они определяют модели и перекидывают это в конкретную вью. Понятно что это можно сделать и так, но я хочу сделать чтобы это было реализовывать проще и одной строчкой суть моя сократить собственную работу, по написанию веб приложений. --- Добавлено --- @runcore это тебе так показалось что у меня гонор, а я не где не говорил что круче всего и вся. Прост овысказал своё мнение по отношении к битриксу в другой теме, и ответил на твои посты в этой теме по поводу наездов на меня.
@Anhk Какая валидация? Валидация чего и для чего??? --- Добавлено --- @Anhk ткни в строку кода или назови метод и скажи какая валидация, чего валидация для чего она там по твоему мнению?) Просто мне интересно может я чё не обдумал, просто понять не могу, к чему там валидация поделись мыслями.
читал, что никогда нельзя доверять тому, что приходит постами и гетами, что приходит при работе пользователя. PHP: + $newArray = []; + $newArray['Category'] = $_POST['Category']; + $newArray['numberOne'] = $_POST['numberOne']; + $newArray['numberTwo'] = $_POST['numberTwo']; + $newArray['limitAll'] = $_POST['limitAll']; + $newArray['on'] = $_POST['on']; + $newArray['sort'] = $_POST['sort']; --- Добавлено --- повторюсь, я не профессионал, как большинство на этом форуме, - меня можешь не слушать.
@Anhk Смотря откуда приходит. Валидацию нужно делать там где она не обходима, а именно валидация нужно там где конечный пользователь может внести какие либо изменения в твой скрипт, чтобы не поехала например твоя бд, но обычно это всё делается на уровне запросов к бд, а остальное наврятли сломает твой скрипт, если только данные значения переменных не передаёшь в функцию eval(); и кстате, валидация нужна по большей части ещё для того чтобы он тебе не испортил твой задумнный вывод информации чтобы пользователь не мог изменить это. --- Добавлено --- @Anhk в данном случае у меня дальеш стоят в модели, погрешности допустим ты подменишь post запросы которые идут у меня через аякс, да например исправишь в data_id и напишешь там что то не понятное, сайт лишь выдаст что извините но мой движок выдаст извините вы ввели что-т оне то.
@askanim, делай валидацию в контроллере страницы. А модель пусть занимается своей работой. Лучший вариант, даже определить класс Request и там же обрабатывать все данные получаемые от пользователя.
предпочитаю считать, что я многого не знаю, а потому трухацкеры могут(!) поломать мой сайт сделать, хоть и не станут (кому оно надо?). ну, короче, придумываю себе лишнюю работу, которая в теории может меня спасти, ЛОЛ. твою мысль я понял. --- Добавлено --- @mahmuzar, не модель ли должна валидировать данные?
@Anhk, задача модели работа с базой данных. --- Добавлено --- В модель данные должны попадать уже готовыми к использованию. --- Добавлено --- имхо
хм, я считал, что это не единственная задача модели. она занимается всеми вычислениями, валидацией, работой с базой, - в моём понимании. контроллер лишь связующее звено, которое дёргает за ниточки, чтобы вызвать нужный элемент системы.
@mahmuzar Ты видишь тfм валидации какие нибудь ? на тебе файл модели. PHP: <?php /** * Created by PhpStorm. * User: askanim * Date: 24.06.2016 * Time: 18:32 */ namespace App\Models\Product; use System\Http\Model\Model; class Product extends Model { public function getProducts($idArray) { //echo $idArray['numberOne'].''.$idArray['numberTwo']; $result = $this->table('Product') ->where(['parent_category="'.$idArray['Category'].'"']) ->limit($idArray['numberOne'].', '.$idArray['numberTwo']) ->order($idArray['sort']) ->get(); if (empty($result)) { header("Location: /whoops"); exit(); } return $result; } public function getNavigation($idArray) { /* * Костыль ну ладно... Потом перепишем * Тут я делаю выборку всех товаров в этой категории и делю * по странично исходя от лимита товара на страницу * Короче строю пагинацию * * * */ $resultTwo = $this->table('Product') ->where(['parent_category="'.$idArray['Category'].'"']) ->get(['COUNT(id) As count']); $ArrayPage = []; $ArrayPage['products'] = []; $pageNumber = $resultTwo[0]['count'] / $idArray['limitAll']; $pageNumber = ceil($pageNumber); $pageItems = 0; for ($i = 1; $i<=$pageNumber; $i++ ) { $ArrayPage['products'][$i]['id'] = $i; $ArrayPage['products'][$i]['pageNext'] = $pageItems; $pageItems = $pageItems+$idArray['limitAll']; $ArrayPage['products'][$i]['pageNow'] = $idArray['limitAll']; }; $ArrayPage['page'] = [ 'max_item' => $idArray['limitAll'], 'count_prod' => $resultTwo[0]['count'], 'count_pages' => $pageNumber ]; return $ArrayPage; } } А там идёт раздвоение на какую обработку послать, то есть там условие, что если 0 то модель определить такую, если условие такое то и модель соотвественная условия вот и всё, в чём причина тут ещё либо какой лишней валидацие вы о чём вообще зачем, вы чё курили коллеги ?
@Anhk Тебе нужно поговорить с Lord_of_the_Developer мистер всея @mkramer --- Добавлено --- @mahmuzar Какая к чёрту ВАЛИДАЦИЯ ! --- Добавлено --- @mahmuzar тебя куда понесло боже.... Госпади кто нибудь вразумети их у меян ща седло сгорит, за что зачем давайте везде лепить htmspecial у меня движок сам всё валидирует если ты ему сунешь то что не проходит он тебя пошлёт в whoops и всё там просто не пройдёт сравнение элементарно в базе и выдаст УПС не ту такой странички, а на уровне моего ДАО паттерна стоят на стражи функции prepare и quote, вы каких грибов ели ? --- Добавлено --- Я ЗДАЮСЬ О LORD_OF_THE_DEVELOPER @mkramer приди и вразуми их. О великий!
@Anhk У меня роутер отправит тебя нахрен если ты пошлёшь ему не верный запрос. Эти посты нужны лишь для того, чтобы передаться урл любой другой роутер в любом framework открой и посмотри, я тебя уверяю мой точно такой же по принципы и отличается только логикой работы.
не понял, а причем тут роутер и валидация пришедших данных? в случае с гетом - окей, допустим. остальные данные ты не валидируешь исходя из того, что в этом нет смысла (выше ты писал, что это ничего не поломает и всё такое в твоей системе)? и у меня ещё один вопрос: хули ты горишь-то так? расслабься, я ж не критикую тут твой проект. просто задаю вопросы для себя.
@mahmuzar Смотри у нас на форуме уважаемый @mkramer в других многочисленных темах и не однократно он про валидацию рассказывал и ты такое ощущение не читал даже его посты, хотя ты там что-то отвечал в этих темах и не однократно такое было, на моей памяти он рассказывал про валидацию. смотри на пальцах объясняю. Валидация нужна в трёх случаях. 1. Если данные попадают в запрсоы к бд, но поверь функции типа quote либо же подготовленные запросы prepare. справятся с этой задачей на все 100%. Именно для этого zend их и написал. 2. Как я понимаю из сказанного @mkramer она нужна ещё перед поподанием в функцию eval/ 3 И последний вариант, это произвольная валидация если лично ты не хочешь, чтобы у тебя в строке содержались какие то хрени от пользователей чтобы не дать им ввести то что ты лично не захотел увидеть. Всё в других случаех во всех любых остальных, ни что никогда введённое пользователем, как укогодно не поломает ваш скрипт. --- Добавлено --- @Anhk потому что ты вообще не въезжаешь в тему.