blackmamba

Statistika

Pridružen/a:
04 mar 2008, 15:36
Zadnjič aktiven:
26 nov 2025, 11:23
Prispevki:
Teme:
58 | Vse teme
392
25
11

Podpis

#3

@krho: Hehe, s code stylom sem se res 10 min zafrkaval, da sem vse text indente s presledki naredil itd, ekstra sem se še potrudil z { in \n{ ,ampak tebi nič ne uide :)



Nazadnje, ko si mi predlagaly Symfony2 si mi dal ogromno zanimivega branja in danes tudi, thx! Nekaj komponent sem tudi uporabil.

Routing komponente ne morem uporabiti, ker moj sistem generira url-je na drugačen način in do klica kontrolerjev je druga pot(podobna, ampak drugače :)).

Zgornji primer sem si izmislil samo za IM, da sem lahko približno razumljivo vprašal kaj me zanima.



@Slim: Pomojem je posumil na Symfony2 zaradi indexAction() :)

Se strinjam, __call() ni primarno namenjen za ugotavljanje ali funkcija obstaja. Tukaj pokličem default funkcije, kar sem v primeru zbrisal.


všeč(0) ni všeč(0) spam(0)
#

Živjo mojstri!

Napisal sem primer, za katerega me zanima ali je luknjast oz. ali lahko kak zlobnež pokliče kakšno neželjeno funkcijo. Jaz mislim da je ok.



Hvala za vaša mnenja :)



Primeri klicev:

http://localhost/test.php

http://localhost/test.php?action=test

http://localhost/test.php?action=blaaaa


<?php

class Mama
{
protected $action;

protected function indexAction(){
return 'index akcija';
}

public function handle()
{
if(empty($this->action))
{
return $this->indexAction();
}
if(preg_match('/^[a-z_0-9]+$/i', $this->action))
{
return $this->{"{$this->action}Action"}();
}
}

public function __call($name, $args)
{
return 'Akcija <b>'.htmlspecialchars($name).'</b> ne obstaja.';
}
}

class Test extends Mama
{
public function __construct()
{
if(isset($_GET['action']))
{
$this->action = $_GET['action'];
}
}

protected function testAction(){
return 'test';
}
}

$test = new Test();
print($test->handle());

?>
všeč(0) ni všeč(0) spam(0)
#6

@krho: yesss dober nasvet, hvala.


všeč(0) ni všeč(0) spam(0)
#1

Pomojem je Vini buildal cache, da nam bo zdaj hitrejš delal :D


všeč(0) ni všeč(0) spam(0)
#4

GET in POST sta classa, s katerima handlam $GET in $POST requeste.


všeč(0) ni všeč(0) spam(0)
#2

U, carsko!! Škoda, da ti lahko samo 1 plus pritisnem. ;)

Hvala



edit:

Sedaj imam pri vsakem controllerju

use GET,POST,....;

A bi se dalo to v kak autoloader vključit oz. nekako avtomatsko uporabit, da nebi bilo potrebno vsakič "use" vrstice napisat?


všeč(0) ni všeč(0) spam(0)
#

Struktura datotek na disku:

- /lib/

- /lib/Testclass.php

- /index.php



Vsebina lib/Testclass.php:


<?php
namespace lib;
class Testclass{
public function say(){
say_func();
\test1::say();
}
}
?>

Vsebina index.php:


<?php
spl_autoload_register();
class test1{
static public function say(){
echo 'hello from static';
}
}
function say_func(){
echo 'hello from function';
}
$o = new lib\Testclass();
$o->say();
?>

Napisal sem en simple primer, ki deluje.



Moje vprašanje pa je ali obstaja način, da bi v Testclass.php poklical test1::say(); namesto \test1::say();

Tako kot deluje npr. klic globalne funkcije say_func() definirane v index.php



Moj neuspešen poskus je bil dodati v Testclass.php:


namespace lib;
use \;
use \*;

Torej, želim klicati razrede definirane izven namespacov v razredu znotraj namespaca brez začetnega '\', tako kot to deluje za navadne funkcije.


všeč(0) ni všeč(0) spam(0)
#31

Mogoče bi bilo treba povečati obseg in razširiti ponudbo še v bližnje države.



Pomojem se človeku, ki plača 10k za avto, ni problem zapeljati par 100km, če ve, da bo tam dobil boljši avto za isto ceno oz. ceneje.



Obstajajo tuji avto-neti, kjer so tuji prodajalci bližje slovenskemu kupcu, sploh tistim pri meji.



Zraven bi nujno morali bili kvalitetni nasveti, kako avto uvoziti s čimmanj težavami.



Ponujali(prodajali) bi lahko storitve:

- uvoz avtomobila v Slovenijo

- komunikacija s prodajalcem



my 4 cents


všeč(1) ni všeč(0) spam(0)
#4

@SpinX: Kje si videl novo tabelo za vsako lastnost? Vse lastnosti so v eni tabeli 'attribute', vrednosti pa v 'attributevalue'. Pravzaprav je struktura precej podobna primeru, ki si ga poslal, ki mi je btw. dal za misliti. (različni tipi za attributevalue)



@krho: Je res 1km = bad, ampak a kaj drugega preostane? Konec koncev se lahko te zadeve pocachira in ob spremembah artikla/opicj zapiše v neko obliko, ki prihrani precej joinov. Poznaš mogoče kak drug pristop?



Včeraj nisem utegnil odgovoriti, bom pa danes zvečer naredil verzijo 2 strukture in poslal. Hvala za pomoč :)


všeč(0) ni všeč(0) spam(0)
#

Živjo,

malo za razmislek in za kakšno idejo/nasvet odpiram tole temo.

Spletnih trgovin je že veliko, zato delam jaz še eno :)



Funkcjonalnosti:

- večjezičnost,

- izdelek v več kategoirjah (ena kategorija je privzeta za breadcrumbse)

- proizvajalci

- opcije(atributi) izdelka, npr barva, velikost,....

- filtriranje izdelkov po kategorijah in iskanje glede na atribute

- različna cena, zaloga,.. glede na izbrano kombinacijo opcij



Tukaj je čisto osnovna, prva in precej okleščena verzija, kako naj bi baza zgledala. http://shrani.si/f/R/oZ/w2Jzqn5/capture.png



Primer podatkov:

product(artikel)

product2attribute(productid, attributeid, attributevalueid)

attribute(barva, velikost,..)

attribute_value(rdeca,rumena,S,M,L,XL,...)



Par zelo pomembni stvari, ki v tej shemi manjka:

- cena

- zaloga

- serijska št.

ob izbranih opcijah.



Vprašanje pa sledi:

Kako bi zapisali ceno, glede na to, da se lahko razlikuje glede na izbrano kombinacijo opcij.



Primer:

majica v rdeči barvi S = 9€

majica v zlati barvi S = 9€

majica v rdeči barvi M = 10€

majica v zlati barvi M = 15€



Torej, izbrana opcija ne more vedno povečati za fiksni ali procentualni znesek osnovne cene artikla.



Podobno vprašanje je, kako zapisati zalogo in serijske št. glede na izbrano kombinacijo večih opcij.



Edina ideja, ki mi pade na pamet je tabela vseh možnih permutacij pri urejanju vsakega artikla.



Primer:

velikost; barva; cena; serial; zaloga

S; rdeca; 9€; 123; 2

S; zlata; 9€; 123z; 0

M; rdeca; 10€; 1234; 0

M; zlata; 15€; 1234z; 3



Se spomni kdo kakšne drugačne rešitve?

Bi drugače zastavili bazo?

Bi bilo bolje vsako kombinacijo opcij zapisati kot svoj artikel z nekim parent_id-jem 'master' izdelka?



Vseh nasvetov in komentarjev bom zelovesel :)



edit:

zdaj ko sem še 1x prebral, se mi zdi najbolje zalogo in ceno zapisati v tabelo 'product' in vse artikle grupirati po polju 'model'... v tabelo 'product' pa dodati še eno polje za privzeto prikazani artikel.



Res je fajn toplo vodo odkrivat :D


všeč(0) ni všeč(0) spam(0)