че-то автор-то молчит =\ https://github.com/gorbunov/cascade Мне понравилось, наверное потому что сам стараюсь держаться simplistic OOP надо будет тоже переписать свою кривую кроссобертку субд на pdo...
тоже вчера рассматривал, аккуратно сделано, афтор жжет ) жаль только нет комментов для апи доки и сайта с туториалом +1 к пдо, тоже буду переписывать
Нафига? Мы ещё будем переписывать драйвер на mysqli. Просто сейчас Олег взял для быстроты PDO, т.к там есть именнованные плейсхолдероы, а в mysqli нет.
У меня сделано по типу DBSimple щас, думал через PDO реализовать кроссубд. мне тупо лень драйверы клепать =) мне вообще вот этот момент не оч понравился =)
и так понятно почему так, мне просто не нра. чисто идеологически. не минималистично чтоли, а ещё константы =) на самом деле, нахожу много сходств в подходе и в реализации со своим говнокодом...
«Чисто идеологически» ты видишь какие-то альтернативные варианты решения? На самом деле, там ничего передавать вообще не надо, потому что этот метод ты вызывать напрямую не будешь никогда, его вызывают другие методы. А что с формами надо делать?
Вот тут ближайшие планы на развитие. Если у вас есть что добавить в этот список — с интересом рассмотрю ваше предложение.
конечно я вижу, это же твоя разработка - твоя реализация. я и не говорю что чего-то надо переделывать, делай как считаешь нужным. Я просто сказал что мне не оч. нравится этот кусок, есть и другие, которые не нравятся; это как бы оценочное мнение, типа вкусно или нет. а формы это, ну пишут обычно всякие там генераторы, автовалидаторы и тп;
Насчет форм правильная мысль, это то, что напрягает больше всего. Хочу у себя сделать нормальный генератор моделей и маппера по таблице/нескольким таблицам и какой то общий интерфейс для кеша, что бы можно было указывать галочками что может оттуда тянуться. Потом генератор формы и валидатора по мапперу. На java с gui буду писать наверное. Еше не плохо бы грабить корованы Ну это пока все мечты. по делу у меня так, ну или примерно так PHP: <?php if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest'){ header("HTTP/1.0 404 Not Found"); exit; } не красиво, не нравится - ajax action надо.
Валидация данных (не обязательно форм, валидировать можно что угодно) уже есть и работает. Кодогенерации форм не будет — это фреймворк, а не CMS. В принципе, не будет вообще никакой кодогенерации, разве что кроме какого-нибудь кеширования. Кодогенерация плохо влияет на понимание происходящего, создавая много неочевидности в коде. Основная цель фреймворка — быть максимально предсказуемым, максимально очевидным, и всегда предлагать полноценный автокомплит. Кодогенерация форм вдвойне бесполезна, поскольку подходит либо к совсем простым формам, либо обрастает огромным сложным синтаксисом, значительно сложнее HTML как такового. Моя цель - получать результат наиболее простым и быстрым способом, а не наиболее универсальным. Именно поэтому во фреймворке нет «идеологически верного» ООП.
Кстати говоря, с учетом существующего валидатора валидация формы еще и аяксом сводится к 3 дополнительным строчкам, если вы все об этом говорили: PHP: <?php $data = Validation::factory($_POST); // неважно, откуда пришел POST, из аякса или отсылкой формы $data->filter('name', 'trim')->rule('name', 'min_length', 3); if (!$data->is_valid()) { $errors = $data->errors(); $template = 'form/template'; // шаблон с формой if ($this->request->is_ajax) // запрос пришел аяксом { // выбираем шаблон для аякса. На самом деле, это можно сделать прямо в шаблоне, не делая этого в коде, или оправить просто данные в json обратно $template = 'form/ajaxtemplate'; } View::factory($template)->set('errors', $errors)->display(); } Да и это вообще можно решить в шаблоне, если надо.
Класс аплоада будет, как и класс капчи. В валидатор уже можно добавить любой код, на самом деле - правила и фильтры умеют принимать калбеки для выполнения, есть еще ->callback() для обработки всех данных сразу.
Cascade еше не плохо бы не упустить такой момент т.е. после вызова хранимой процедуры возвращается 2 результата, надо бы возвращать только первый или сделать отдельный метод, запарился у себя с этим
И? Да, вызов пользовательских функций возвращающих кроме результата еще и выборку данных всегда приводят к получению двух результсетов. Это нормальное, документированное поведение, которое происходит не только в Мускуле, но и в других базах данных. Поэтому если ты не озаботился прочитать мануал перед использованием какого либо функционала — драйвер не решит эту проблему.
Да это я тот бездарь который не читает документацию. Но речь об удобстве использования и очистке рекордсета. Или может я что то не то делаю...
Padaboo Ну, покажи что ты делаешь, и чего ты хочешь добиться А я пока потихоньку мануалы начну писать