powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] перезагрузка методов и свойств класса
25 сообщений из 26, страница 1 из 2
[php] перезагрузка методов и свойств класса
    #38177108
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите как выполнить такую конструкцию?

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$a = new a();
$a->b->c('arguments');

class a {
	public function c() {
		// имя класса
		// имя объекста из под которого вызван метод
		// имя объекта
	}
}


Спасибо!
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177116
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такая конструкция не работает

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<?php

$a = new a();
$a->b->c('arguments');

class a {

	public function __construct() {
		print "Класс: " . __CLASS__ . "\n";
	}

	public function __get($name) {
		print "Объект: " . $name . "\n";
	}

	public function __call($name, $arguments) {
		print "Метод: " . $name . "\n";
		print "Аргументы:\n";
		print_r($arguments);
	}
}
?>


__call не отдает результаты
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177121
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseous
Код: php
1.
имя объекта


__CLASS__
а имя объекта то чем поможет?
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177128
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseous,

изначально какая задача?
а то ощущение что пытаетесь сделать операцию на лазах через жопу.
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177141
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

задача получить в методе класса b, с (+аргументы)
при таком вызове
$a = new a();
$a->b->c('arguments');
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177154
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseous$a->b->c('arguments');
это вы имеете в виду что?
у объекта $a вызываем метод b, потом метод c ?
или b это свойство, тоже объект?
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177175
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

мне надо получить в результате

class любое название {
public function любое название() {
// имя объекта из под которого вызван метод (в моем случае b)
// имя метода и аргументы (в моем случае с("аргументы"))
}
}

вызов всегда
$любое название = new любое название();
$любое название->b->c('arguments');
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177187
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что я получаю
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$a = new a();
$a->b->c('arguments');

final class a {

	public function __get($name) {
		print "Объект: " . $name . "\n";
	}

	public function с($name) {
		print "Метод: c() Аргументы: '.$name.'\n";
	}
}


Объект: b
PHP Fatal error: Call to a member function c()...
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177211
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousPHP Fatal error: Call to a member function c()...
ну правильно.
где код класса объекта B ?
метода c() то для класса A описан.
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177217
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где код класса объекта B ?класса B не будет! надо перезагрузить как-то в это же класс
то есть получить в классе A

метода c() то для класса A описан.поэтому он и описан для класса А так как только он есть и будет

надо перезагрузить в самого себя
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177224
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseous,

если будет тотже класс. то какой в этом смысл?

в общем пока так и непонятна задача начальная, что именно вы хотите сделать.
возможно решение намного проще. чем вы городите...
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177236
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousr u,

задача получить в методе класса b, с (+аргументы)
при таком вызове
$a = new a();
$a->b->c('arguments');

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
$a = new A();
$a->b->c('arguments');

class A {
public $b;
	public function __construct() {
		$this->b = new B($this);
	}
}
class B {
public $b;
protected $a;
	public function __construct($a) {
		$this->a = $a;
	}

public function c() {
var_dump($this->a, func_get_args());
}
}
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177243
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

спасибо огромное, но надо все в одном классе (
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177284
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousr u,

задача получить в методе класса b, с (+аргументы)
при таком вызове
$a = new a();
$a->b->c('arguments');
так чтоли?
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$a = new a();
$a->b->c('arguments');

class a {


	public function __get($name) {
		print "Объект: " . $name . "\n";
		return $this;
	}

	public function __call($name, $arguments) {
		print "Метод: " . $name . "\n";
		print "Аргументы:\n";
		print_r($arguments);
	}
}
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177303
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат, спасибо огромное!!!!!!!!!!! )))
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38177741
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseous,

и какой смысл во всем этом?
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38178117
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r unauseous,

и какой смысл во всем этом?
видимо синтаксис jquery понравился....
такой помойму propel, activerecord интерфейс имеют
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38178146
Method chaining
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторвидимо синтаксис jquery понравился....
http://en.wikipedia.org/wiki/Method_chaining - только я тоже не понял, зачем ТС этим озадачился?
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38178357
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все намного проще, это API для сайта

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<?php

final class api {

	public function __construct($token) {
		if (isset($token)) {
			$this->token = $token;
		}
	}

	public function __get($name) {
		if (isset($name)) {
			$this->class = $name;
		}

		return $this;
	}

	public function __call($name, $arguments) {
		if (isset($name) && isset($arguments)) {
			$ch = curl_init();
			curl_setopt($ch, CURLOPT_URL, 'http://api.XXXXXXXXXXXXXXXXXXXXX.ru/');
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_TIMEOUT, 15);
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
					'token' => $this->token,
					'class' => $this->class,
					'method' => $name,
					'arguments' => $arguments
				)));
			$this->{$this->class}->$name = curl_exec($ch);
			curl_close($ch);
		}
	}
}
?>


пользователь читает phpdoc и вызывает те классы и методы которые ему нужны для работы,
сервер проверяет получаемые данные и отдает результат в случае успеха

пример использования
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?php

try {
	$api = new api('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
	$api->className->methodName('arguments');
	if (isset($api->className->methodName)) {
		print_r($api->className->methodName);
	}
} catch (Exception $exc) {
	print $exc->getTraceAsString();
}
?>


таким образом API класс всегда статичный, далее уже развивается только документация ;)

Всем спасибо за помощь
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38178359
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uа то ощущение что пытаетесь сделать операцию на лазах через жопу.фу! где ваше воспитание!?
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38178487
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousтаким образом API класс всегда статичный, далее уже развивается только документация ;)
ну и зачем для этого было городить такой огород?
классы реализаций и методы то все равно нужно писать.
посмотрите реализации АПИ для начала. вы зачемто пытаетесь сдеалть сложно и запутанно - вместо того чтоб сделать просто и понятно.
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38181477
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r unauseousтаким образом API класс всегда статичный, далее уже развивается только документация ;)
ну и зачем для этого было городить такой огород?
классы реализаций и методы то все равно нужно писать.
посмотрите реализации АПИ для начала. вы зачемто пытаетесь сдеалть сложно и запутанно - вместо того чтоб сделать просто и понятно.
Вы наверное не так меня поняли, библиотека уже есть,
в ней около ста классов и в каждом в районе два-пять методов..

Библиотека разработана нашей компанией для публичного использования,
ну и соответственно стал вопрос доступа к классам и методам

пхпдок уже готов, есть детальное описание каждого из классов..
осталось только сделать доступ...

Мне встречались аналогичные модели - через перезагрузку методов
ну и соответственно было принято решение использовать данную модель

Я понимаю что дела пахнет велосипедом, одна на мой взгляд достаточно
компактно и удобно

Еще раз спасибо за содействие
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38181580
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
	public function __get($name) {
		if (isset($name)) {
			$this->class = $name;
		}

		return $this;
	}


А isset тут зачем?)
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38182206
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат, точно )) еще думаю курл на file_get_contents + POST переложить
...
Рейтинг: 0 / 0
[php] перезагрузка методов и свойств класса
    #38183308
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousРенат, точно )) еще думаю курл на file_get_contents + POST переложить

двигаемся в обратном направлении по дереву эволюции
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] перезагрузка методов и свойств класса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]