Pridani metody do knihovni tridy

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
radecek
Člen | 23
+
0
-

Ahoj,

potreboval bych dopsat nejake metody do tridy User (registrace, mazani, informace, …), ale tyto metody potrebuju mit v modelu (kdybych provadel update nette tak at to nemusim myslet). C# to resi pomoci pomoci parcialnich trid, bohuzel jsem nic takoveho v PHP nanasel. Da se to nejak vytvorit?

Tharos
Člen | 1030
+
0
-

Nezkoušel jsi extension metody?

radecek
Člen | 23
+
0
-

Zkousel ale nejede mi to.. V modulu jsem zkousel normlane udelat:

<?php
function bla(){
...
}

User::extensionMethod('bla');

?>

A pak v presenteru:

<?php
...
$user = new user();
$user->bla()
...
?>

Toto nejde.. Jeste jsem zkusil to cele zabalit do tridy exUser a pridavat do user stejnym zpusobem clenske metody v konstruktoru, ale take to nejde..

Mikulas Dite
Člen | 756
+
0
-

Nic ti nebrání User podědit a metody dopsat do něj. Nette by mělo brát v potaz

service.Nette-Web-IUser = \YourProject\Security\User

v configu.

radecek
Člen | 23
+
0
-

Mikulas Dite napsal(a):

Nic ti nebrání User podědit a metody dopsat do něj. Nette by mělo brát v potaz

service.Nette-Web-IUser = \YourProject\Security\User

v configu.

Muzes mi to prsoim trosku vice popsat?

Mikulas Dite
Člen | 756
+
0
-

Můžeš snadno vytvořit user model

class CustomUserModel extends \Nette\Web\User implements \Nette\Web\Iuser
{

	/* CRUD functions */
}

A navíc se Nette nějak musí dozvědět, že má používat tehle objekt místo toho původního. Proto ta úprava v config.ini.

radecek
Člen | 23
+
0
-

Co znamena \YourProject\Security\User. Ale pak se trida bude jmenovat CustomUserModel. Nejde aby se jmenovala User?

Editoval radecek (5. 1. 2011 14:55)

blacksun
Člen | 177
+
0
-

Jde, ale z jiného namespace.

Mikulas Dite
Člen | 756
+
0
-

Pokuď budeš mimo namespace \Nette\Web\, což asi budeš, může se ta třída jmenovat libovolně.