Форум → Программирование → Пыхнуть хотите? → Battles → PHP LINQ
PHP LINQ
Страницы: ← Предыдущая страница • Следующая страница →
-
11 ноября 2009 г. 14:00, спустя 1 минуту 30 секунд
мавр, я знаю, в том то и дело, дуд, так написал, вот я и задумалсяСпустя 30 сек.я в C#, бы сделал так (new Ling())->Method(); анонимный обьект и метод -
11 ноября 2009 г. 14:03, спустя 3 минуты 30 секунд
нет так незлья))
я ебу, а так можно $filtered = new Linq($src)->where('parent',10)->where('level',10)->order('date')->limit(10); ?Спустя 33 сек.в смысле new linq($src)->вызовМетодаСразуПослеКонструктора(); ?
о можно
$data =Linq::create($src)-> -> -> ..Спустя 31 сек.krasun, анонимный объект не это … :)Сапожник без сапог -
11 ноября 2009 г. 14:08, спустя 4 минуты 37 секунд
млин, спутал, только вот с чем-то похожим, не помню ужеСпустя 94 сек.кажется с временным или что-то подобное =( -
11 ноября 2009 г. 14:26, спустя 17 минут 48 секунд
просто объект безымянный)))
млин, спутал, только вот с чем-то похожим, не помню ужеСпустя 94 сек.кажется с временным или что-то подобное =(
лямбда - нечто вида
new MyObject(new object{ i: 10, y:20});
такое чтото %)Сапожник без сапог -
11 ноября 2009 г. 14:27, спустя 1 минуту 7 секунд
сука, точно безыменный, вот а я спутал с анонимным, ведь очень похоже,
аноним ~ что-то без имени -
11 ноября 2009 г. 14:34, спустя 6 минут 37 секунд
krasun, )))
возмоно я тоже неправ, но мне похуй, ибо в жизни я не теоретик, я просто знаю что так можно, а как называется - хуй я клал. я юзал сингтоны в те времена, когда еще не знал что вообще есть паттерны ооп ))))))))))))))))
зы: тут синглтон по реализации (которую я вижу в голове) не подойдет, а вот фабрика например - самоето :)Сапожник без сапог -
11 ноября 2009 г. 14:59, спустя 25 минут 50 секунд
я тоже о фабрике подумал, пока работает следующее, но это наброски, но работает
require_once 'PEQ/Select.php';
$names = array(
"Alex", "Alan", "Paul",
"Jessica", "Morgan", "Robert");
$select = new PEQ_Select();
/*
* Select *
* FROM $names
* WHERE
* strlen($element) > 4 AND
* $element != "Morgan"
*
*/
$select->from($names)
->where('strlen($element) > 4')
->where('$element != "Morgan"');
/*
* Output:
*
* 0 => Jessica
* 1 => Robert
*
*/
echo '<pre>';
foreach ($select->result() as $key => $value)
{
echo "{$key} => {$value} \n";
}
echo '</pre>'; -
11 ноября 2009 г. 15:09, спустя 9 минут 16 секунд
потом будет
$query = PEQ::select()->from($names)->where('strlen($element) > 4')->where('$element != "Morgan"');
foreach ($query as $element) {
..
} -
11 ноября 2009 г. 15:27, спустя 18 минут 46 секунд
Давайте-давайте, я потом заценю )https://smappi.org/ - платформа по созданию API на все случаи жизни -
11 ноября 2009 г. 16:42, спустя 1 час 14 минут 23 секунды
$select = new PEQ_Select();
/*
* Select *
* FROM $names
* WHERE
* strlen($element) > 4 AND
* $element != "Morgan"
*
*/
$select->from($names)
я не понимаю почему бы не сделать
$select = new PEQ_Select($names); ???
это во первых, во вторых - будет гpdate, delete? ))Сапожник без сапог -
11 ноября 2009 г. 17:15, спустя 33 минуты 25 секунд
не я думаю, выборки хватит для начала.
хоть убей $select = new PEQ_Select($names); не могу так сделать, ибо у меня ощущения, что там должны быть названия полей, а в from откуда.
Вот кстати, уже сделал два примера, работающих<?php
function breakline()
{
for ($i = 0; $i < 10; $i++) {
echo '-';
}
}
require_once 'library/PEQ.php';
/* Example 1 */
$names = array(
"Alex", "Alan", "Paul",
"Jessica", "Morgan", "Robert");
/*
* SELECT *
* FROM $names
* WHERE
* strlen($element) > 4
*
*/
$query = PEQ::select()->from($names)
->where('strlen($element) > 4');
/*
* Output:
*
* Jessica
* Morgan
* Robert
*
*/
echo '<pre>';
foreach ($query as $value) {
echo "{$value} \n";
}
echo '</pre>';
breakline();
/* Example 2 */
class Customer
{
public $name;
public $age;
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
$customers = array(
new Customer("Alex", 35), new Customer("John", 40),
new Customer("Albert", 12), new Customer("Mabp", 25)
);
/*
* SELECT *
* FROM $customers
* WHERE
* $customers->age > 20 AND
* $customers->age < 38
*/
$query = PEQ::select()->from($customers, '$customer') // вместо $element ,
// устанавливаем свое название, которое
// подходит под контекст
->where('$customer->age > 20')
->where('$customer->age < 38');
/*
* Output:
*
* Alex
* Mabp
*
*/
echo '<pre>';
foreach ($query as $value) {
echo "{$value->name} \n";
}
echo '</pre>';
breakline();
?> -
11 ноября 2009 г. 18:05, спустя 49 минут 50 секунд
слушай, как думаешь?
я за то, чтобы НЕ БЫЛО eval'ov, а ты с виду за них ибо копировал (идею реализации конечно с виду) ling4php или как там. первой библиотеки предложенной эдвордом.Сапожник без сапог -
12 ноября 2009 г. 1:15, спустя 7 часов 10 минут 18 секунд
phpdude, какая библиотека, эдворд вроде бы ничего не предлагал?
Не я не с eval`ом. Я делаю, так как это делают в .NET, там основе запроса создается фильтер функция, а потом она применяется к массиву. Я тоже создаю такую функцию и применяю ее к массиву.
Я сейчас решил, все переделать. И понял, в селект нужно передавать какое-нибудь выражание, к примеру:
$query = PEQ::select('strtolower($customer->name), abs($customer->age)')->from($customers, '$customer') // вместо $element ,
// устанавливаем свое название, которое
// подходит под контекст
->where('$customer->age > 20')
->where('$customer->age < 38');Спустя 298 сек.Хотя может там и заложен механизм eval`а. И еще я думаю все таки синтаксис должен быть неким подобием синтаксиса linq на C#, то есть не
$query = PEQ::select('strtolower($customer->name), abs($customer->age)')->from($customers, '$customer') // вместо $element ,
// устанавливаем свое название, которое
// подходит под контекст
->where('$customer->age > 20')
->where('$customer->age < 38');
а
IEnumerable<string> query = from s in names
where s.Length == 5
orderby s
select s.ToUpper();
$query = from($names, '$s')->
where('strlen($s) == 5')->
select('strtoupper($s)');
То есть после вызова селект уже возвращается отфильтрованный массив.
p.s: тег java использую, так как C# не работает -
-
12 ноября 2009 г. 1:18, спустя 1 минуту 32 секунды
Потому, что тот синтаксис, что я делал первый раз, больше действительно похож на SQL билдер, а в linq, все таки не много не так. Хотя что самое классное, они интегрировали это и на уровне бд, то есть эти запросы, можно выполнять сразу и с таблицами в бд.Спустя 37 сек.
а я еще думаю :)
ну я тоже думаю, просто пока думал, решил сделать наброски. еще есть 8 дней ))
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!