var ids = []
for(var id = 1; id < 10; id++) {
ids.push(id);
}
ids.forEach(function (id) {
// по скольку ссылка на нужный id будет сохранена всегда, пока живо замыкание
// все будет ок.
$.ajax({
type: "POST",
data: {Id: id},
url: "getname.php",
dataType: "json",
success: function(data){
alert(id);
}
})
}
class Function {
public static function foo() {
return 'foo';
}
public static function bar() {
return 'bar';
}
}
class Html {
public static function __callStatic($name, $arguments) {
// разрешаем вызывать только foo
if (!in_array($name, ['foo'])) {
throw new \RuntimeException(sprintf('Unable to find method %s in class %s', $name, __CLASS__));
}
return call_user_func_array(['Functions', $name], $arguments);
}
}
Html::foo() // 'foo'
Html::bar() // exception
class Html {
public static function foo() {
return Functions::foo();
}
}
app/console cache:clear --e=prod
bin/console cache:clear --e=prod
class Bar {
public function doSomething() {}
}
class Foo{
private $bar;
private $someConfig;
private $createdAt;
public function __construct(Bar $bar, $someConfig) {
$this->bar = $bar;
$this->someConfig = $someConfig;
$this->createdAt = new \DateTime();
}
}
// загружаем конфиг каким-то образом
// мы не должны заставлять Foo что-то делать еще, что не относится к его задаче
// например он не должен знать как создается класс Bar и что ему нужно
// он не должен ничего знать о том где хранятся конфиги и т.д.
// Для этого можно отдельный класс сделать, который будет знать где брать конфиги
// но не будет знать как эти конфиги используются.
$config = $configurator->getConfig('foo');
$bar = new Bar();
$foo = new Foo($bar, $config);
Вот с помощью чего в Symfony2 делать формы
var data = {},
dataProxy = new Proxy(data, {
get: function (target, name) {
// do the magic here!
}
});