ďťż
 
klasy a odwolania do funkcji ďťż
 
klasy a odwolania do funkcji
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

klasy a odwolania do funkcji



m0d - 13-08-2006 00:20
klasy a odwolania do funkcji
  Próbuje zrozumiec ale kiepsko idzie :)

Pomijajac logike - wiekszosc funkcji wyciete zeby bylo czytelne
mam tak:

//////////////////////////////////////////////
class MakeSzkielet {
var $Source;

function Render()
{
}
}
/////////////////////////////////////////////
class FunkcjeGlobalne {
var $HOST;

function Get($what) {
}
}
/////////////////////////////////////////////
$Global = new FunkcjeGlobalne();
$Page = new MakeSzkielet();
/////////////////////////////////////////////
class Sql extends FunkcjeGlobalne{
var $params = array();

function row_count($table,$clause=null)
{
}
}
/////////////////////////////////////////////
class SqlConnect extends FunkcjeGlobalne {
var $Username;

function DBconnect()
{
}

}
/////////////////////////////////////////////
$SqlConnect = new SqlConnect();
$Sql = new Sql();

a o co chodzi....

$Sql->row_count('qq') // Dziala

Ale co mam zrobic zeby ta funkcja byla dostepna w nowej klasie

class os_print extends FunkcjeGlobalne{
var $r;

function os_print_execute()
{
$this->r = 'alibaba';
$this->r .= $Sql->row_count('qq'); /////// TUTAJ NIE DZIALA

return $this->r;
}
}

Dopiero probuje sie zaznajomic z programowaniem obiektowym wiec prosze o
wyrozumialosc jesli jakiegos oczywistego byka zrobilem i proszeo wskazowki

Z gory dzieki za pomoc

PS -> PHP 4

Pozdro
G





artiun - 13-08-2006 00:20

  m0d napisał(a):
> Próbuje zrozumiec ale kiepsko idzie :)
>
> Pomijajac logike - wiekszosc funkcji wyciete zeby bylo czytelne
> mam tak:
>
rozrysuj sobie logikę na kartce, sama wyjdzie.
--
Artur




m0d - 13-08-2006 00:20

 
> rozrysuj sobie logikę na kartce, sama wyjdzie.
> --
> Artur

Logike dzialania mam w glowie ale dopiero zaczynam z klasami i na moj gust
powinno dzialac tak jak jest a nie dziala :)... wiec rozrys nic nie zmieni
bo to gdzies w schemacie w mojej glowie jest blad :>

Pozdro
G




Johnny - 13-08-2006 00:20

  Dnia Sat, 12 Aug 2006 19:16:27 +0200, m0d napisał(a):

> $Sql = new Sql();

> $Sql->row_count('qq') // Dziala
>
> class os_print extends FunkcjeGlobalne{
> var $r;
>
> function os_print_execute()
> {
> $this->r = 'alibaba';
> $this->r .= $Sql->row_count('qq'); /////// TUTAJ NIE DZIALA
>
> return $this->r;
> }
> }

W definicji klasy os_print uzywasz zmiennej obiektu, ktora tworzysz cholera
wie gdzie. Pomijajac, ze wewnatrz metody nazwa $Sql jest lokalna i zupelnie
nie znana.

Daj tak:

function os_print_execute()
{
$this->r = 'alibaba';
$Sql = new Sql();
$this->r .= $Sql->row_count('qq'); /////// TUTAJ NIE DZIALA

return $this->r;
}

pozdrawiam
Johnny





artiun - 13-08-2006 00:20

  m0d napisał(a):
>> rozrysuj sobie logikę na kartce, sama wyjdzie.
>> --
>> Artur
>
> Logike dzialania mam w glowie ale dopiero zaczynam z klasami i na moj gust
> powinno dzialac tak jak jest a nie dziala :)... wiec rozrys nic nie zmieni
> bo to gdzies w schemacie w mojej glowie jest blad :>
Jesteś strasznie chaotyczny, więc i logika taka :)
Rozrysuj. Idź do baby.. bzyknij i zerknij na to co narysowałeś ponownie. :)

--
Artur




m0d - 13-08-2006 00:20

  > Daj tak:
>
> function os_print_execute()
> {
> $this->r = 'alibaba';
> $Sql = new Sql();
> $this->r .= $Sql->row_count('qq'); /////// TUTAJ NIE DZIALA
>
> return $this->r;
> }

niestety efekt ten sam :(

ogolnie jezeli ktos moglby mi przedstawic schemat poprawny

2 klas -> Klasa1 i Klasa2

jak powinno to wygladac ze w jednej klasie odwolac sie do funkcji z innej
klasy

class Klasa1{

function test(){}
}

class Klasa1{

function test2(){
$wynik = $Klasa1->test;
}
}

Dzieki
G




artiun - 13-08-2006 00:20

  m0d napisał(a):
> jak powinno to wygladac ze w jednej klasie odwolac sie do funkcji z innej
> klasy
>
> class Klasa1{
>
> function test(){}
> }
>
> class Klasa1{
>
> function test2(){
> $wynik = $Klasa1->test;
> }
> }
>
muszę Cię zmartwić, ma to g. wspólnego z obiektowością.
Zrób extend lub global.

--
Artur




m0d - 13-08-2006 00:20

  > muszę Cię zmartwić, ma to g. wspólnego z obiektowością.
> Zrób extend lub global.
>
> --
> Artur

no w tym co napisalem mam extends'y i lipa...
a obiektowosc swoja droga - to co robie to taki maly framework ktory ma mi
ulatwic prace

wszystko inne mi dziala... a klasa w ktorej chce sie odwolac do funkcji
innych klas to swego rodzaju modul jeden z wielu

np

$Sql-> to jak sie latwo domyslec klasa odpowiedzialna za obsluge bazy danych

i w module chce sie do niej odwolac czyli np zlozyc zapytanie do bazy przez
funkce z tej klasy

jezeli masz jakis link do tutka opisujacego klasy to z checia przyjme - tak
jak mowilem dopiero sie z tym zaznajamiam - nie mowilem ze to ideal

Pozdro
G




artiun - 13-08-2006 00:20

  m0d napisał(a):
>> muszę Cię zmartwić, ma to g. wspólnego z obiektowością.
>> Zrób extend lub global.
>>
>> --
>> Artur
>
> no w tym co napisalem mam extends'y i lipa...
> a obiektowosc swoja droga - to co robie to taki maly framework ktory ma mi
> ulatwic prace
>
> wszystko inne mi dziala... a klasa w ktorej chce sie odwolac do funkcji
> innych klas to swego rodzaju modul jeden z wielu
>
> np
>
> $Sql-> to jak sie latwo domyslec klasa odpowiedzialna za obsluge bazy danych
>
> i w module chce sie do niej odwolac czyli np zlozyc zapytanie do bazy przez
> funkce z tej klasy
>
czyli... $Sql->connect ma odpowiadać za połączenia z bazą, właściwie bazami,
wtedy (bazami jeśli nie jedną) ma to sens. Implementacja metod, podklas
zachowujących się w analogiczny sposób niezależnie od bazy. Ma to sens. Ale
ja tego tutaj nie widzę (raczej sztuka dla sztuki). Zasada jest jedna -
prostota. Wiąże się to z ograniczeniami do najmniejszych możliwości, bądź
sztucznym dorównaniem do wyższych (rozwinięciem w php tego czego brak danej
bazie).
Widziałem na necie takiego 'tutka' - jest prosty w załapaniu. Rozwiązuje
pierwszy wariant dla kilku baz. Sprawdzę, znajdę, podam (jutro).

--
Artur




artiun - 13-08-2006 00:20

  artiun napisał(a):
> m0d napisał(a):
>> a obiektowosc swoja droga - to co robie to taki maly framework ktory
>> ma mi ulatwic prace
A swoją drogą pokaż jak wygląda __construct() dla $Sql, co tam jest?
lub metodę inicjującą.

--
Artur




m0d - 13-08-2006 00:20

  > czyli... $Sql->connect ma odpowiadać za połączenia z bazą, właściwie
> bazami, wtedy (bazami jeśli nie jedną) ma to sens. Implementacja metod,
> podklas zachowujących się w analogiczny sposób niezależnie od bazy. Ma to
> sens. Ale ja tego tutaj nie widzę (raczej sztuka dla sztuki).

ja pokazalem tylko klasy, zas sens jest troche inny - wyjasnienie ponizej

Zasada jest jedna -
> prostota. Wiąże się to z ograniczeniami do najmniejszych możliwości, bądź
> sztucznym dorównaniem do wyższych (rozwinięciem w php tego czego brak
> danej bazie).
> Widziałem na necie takiego 'tutka' - jest prosty w załapaniu. Rozwiązuje
> pierwszy wariant dla kilku baz. Sprawdzę, znajdę, podam (jutro).

chce zrobic w miare uniwersalne narzedzie na uzytek wlasny i nie do konca
chodzi o obsluge kilku baz chociaz bedzie tez taka mozliwosc

glownym zalozeniem jest aby wygenerowany z php'a html byl printowany dopiero
gdy mamy pelny kod - a nie po kawalku - co defakto juz mi dziala
- moduly sa 'przeliczane', wyciagane tresci z kazdego modulu i dopiero wtedy
jest print calej strony

a klasa Sql akurat jest odpowiedzialna za zapytania a nie za polaczenie np
$Sql->row_count('Nazwa_Tabeli') czyli Select sum(*) from Nazwa_Tabeli
Do polaczenia jest clasa SqlConnect ;)

Jezeli chcesz zobaczyc co i jak mailnim mnie jutro g r z e s i e k A T k s f
m . p l moze bedziesz chcial wspoltworzyc moj zamysl ;) lub bedziesz mial
jakies uwagi
ale tak jak pisalem dopiero na tym zaczalem zabawe z klasami... dzialac
dziala ale czy jest optymalne tego nie wiem... jeszcze troche roboty zanim
bedzie skonczone

przede wszystkim odpalanie funkcji z danych klas w modulach :>

Pozdro
G




Jacek Dębowczyk - 13-08-2006 00:20

  m0d <gpawelcz@o2.pl> napisał(a):
> [...]
> wszystko inne mi dziala... a klasa w ktorej chce sie odwolac do funkcji
> innych klas to swego rodzaju modul jeden z wielu
>
> np
>
> $Sql-> to jak sie latwo domyslec klasa odpowiedzialna za obsluge bazy danych
>
> i w module chce sie do niej odwolac czyli np zlozyc zapytanie do bazy przez
> funkce z tej klasy

Przede wszystkim musisz zacząć odróżniać klasy od obiektów, które są czymś
więcej niż tylko zbieraniną statycznych funkcji.

--
Pozdrawiam, Jacek.

I will not buy this record - it is scratched.




m0d - 13-08-2006 00:20

  >Przede wszystkim musisz zacząć odróżniać klasy od obiektów, które są czymś
>więcej niż tylko zbieraniną statycznych funkcji.

fakt, juz wiem co mialem zle... heh zamysl ;)

W moim przypadku to nie ma byc defakto silnik obiektowy tylko akurat
zbieranina funkcji tzn konstruktory itp nie sa mi potrzebne.
Silnik ma wykonac konkretne zadania i korzystac z zestawu funkcji, zadanie
jest proste wiec 90% to zestaw funkcji

porobilem troche testow i stwierdzam iz za bardzo chcialem przekombinowac
Poprostu musze zrobic tak ze silnik to jest jedna klasa a moduly sa dziecmi
glownego silnika i wtedy nie bedzie problemu

class test{

function foo()
{
return 'foo';
}
}

class test2 extends test{

function ala()
{
print $this->foo();
}
}

$m = new test2;
$m->ala();
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Photoshop CS2 - funkcje, =?ISO-8859-2?Q?kt=F3rych_si=EA_nie_?==?ISO-8859-2?Q?spodziewasz=2E=2E=2E?= [PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?= postgres - ile razy wykona =?ISO-8859-2?Q?si=EA_funkcja_w_?==?ISO-8859-2?Q?zapytaniu?= [MySQL] Load data infile i =?ISO-8859-2?Q?u=BFycie_funkcji_r?==?ISO-8859-2?Q?eplace?= [PGSQL] Funkcje =?ISO-8859-2?Q?zwracaj=B1ce_=27rowset=27_i_?==?ISO-8859-2?Q?tabele_tymczasowe?= Problem z funkcja mysql_real_escape_string() na bazie mysql =?iso-8859-2?q?Sybase_jak_wyci=B1gn=B1=E6_dane_generowane_prz ez_funkcje?= =?iso-8859-2?q?[Mysql_5=2E0]_Wywo=B3ywanie_procedury_jako_parametr_funkcji?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tejsza.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com