Új hozzászólás Aktív témák
-
Soak
veterán
válasz
Lacces #10642 üzenetére
Sokkal rosszabbak ...
De komolyan.
Amúgy meg épp ezért írtam amit írtam nem sokkal ezelött. Kicsit olyan ez mintha Ady, Petőfi, meg Shakespeare írna ugyanarról a témáról egy verset, mind a 3 nagyszerű, de még csak távolról sem hasonlítanának.
A gondolkodás módot kell megérteni meg az alapvető szabályokat, azon túl meg semmi értelme vitatkozni, hogy ki hogyan nevez el egy funkciót, vagy egy változót. Ha neki az a logikus és úgy tudja magát belehelyezni a környezetbe akkor felesleges vitatkozni, más kedvéért úgy se írja át a programot, csak felesleges szájtépés. -persze itt nem a nagyon gyökér dolgokról beszélek-
Ez a fórum is arról szól/kéne hogy szóljon, hogy aki elakadt azt a közösség átsegítse az akadályon, de még véletlenül se annyival, hogy csak odahányja a kódot.
Aki tanulni/problémát megoldani akar annak bőven elég lesz, aki meg ingyen munkát vár az jobb ha felébred
-
Soak
veterán
-
Soak
veterán
-
-
Sk8erPeter
nagyúr
válasz
Lacces #10574 üzenetére
A reguláris kifejezésedben látsz számokat?
/^http:\/\/[A-Za-z0-9\.:]+/
Így stimmelne, de ez a kifejezés sem jó még önmagában semmire, csak arra, hogy valamennyire korlátoztad, hogy ezek a karakterek lehetnek benne, tehát ezen a teszten még egy http://9: is átmenne.Amúgy itt van egy online tester, ha érdekel.
-
Sk8erPeter
nagyúr
válasz
Lacces #10564 üzenetére
Röviden: felejtsd el a fostalicska ingyenes szervereket. Ma már olyan olcsón lehet kapni tárhelyeket, meg domaint, hogy felesleges szopatnod magad ezekkel.
Szerintem a user agent tök mindegy az URL tartalmának lekérésekor ebben az esetben.
De ha hibába fut valamiért az állítgatás, akkor lehet parád az ingyenes szerókon."Ezzel meg pont az a bajom, hogy mindenképp kinyomja a curl_exec() a tartalmat."
Nem értem, most miért nem volt jó az a függvény, amit éppen Te másoltál be az előbb, és amihez még hozzáfűztem plusz két sort.
Itt volt benne erre a megoldás:// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); -
Lacces
őstag
válasz
Lacces #10564 üzenetére
A másik bajom, hogy a hostnál az a baj: 'http://www.google.com/' ezeket a címeket képes lekérdezni, de ami van az előzőnél is, hogy 'http://87.117.193.10:8000/' shoutcast infókat akarok lekérni, akkor semmi. Mintha a UserAgent nem működne a hostoknál, localhoston okés.
-
Sk8erPeter
nagyúr
válasz
Lacces #10556 üzenetére
Ha egy fájlban csak és kizárólag PHP-kód van, akkor sose zárd le ezzel a résszel: ?>. Lásd ezt.
"The closing tag of a PHP block at the end of a file is optional, and in some cases omitting it is helpful when using include or require, so unwanted whitespace will not occur at the end of files, and you will still be able to add headers to the response later. It is also handy if you use output buffering, and would not like to see added unwanted whitespace at the end of the parts generated by the included files."
Ez persze az érdemi kérdésen nem változtat, csak jótanács.ini_set('user_agent', 'Mozilla');
Nincs olyan valid user agent, ami csak úgy simán azzal egyenlő, hogy "Mozilla"!Az érdemi részre meg már látom, PazsitZ leírta a választ, allow_url_fopen nincs engedélyezve a szerveren, amivel próbálkozol, anélkül meg nem megy.
-
Sk8erPeter
nagyúr
válasz
Lacces #10560 üzenetére
Azért nem működik, mert be kell tenned még ezt:
// This will make cURL follow the redirects (@see http://stackoverflow.com/questions/6028050/curl-returntransfer-is-empty-curl-getinfo-error-1)
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);Tehát a teljes függvény:
/**
* Download a website or any other file using cURL
*
* @see http://www.jonasjohn.de/snippets/php/curl-example.htm
* @see http://stackoverflow.com/questions/6028050/curl-returntransfer-is-empty-curl-getinfo-error-1
*
* @param string $Url
* @return string
*/
function curl_download($Url){
// is cURL installed yet?
if (!function_exists('curl_init')){
die('Sorry cURL is not installed!');
}
// OK cool - then let's create a new cURL resource handle
$ch = curl_init();
// Now set some options (most are optional)
// Set URL to download
curl_setopt($ch, CURLOPT_URL, $Url);
// This will make cURL follow the redirects (@see http://stackoverflow.com/questions/6028050/curl-returntransfer-is-empty-curl-getinfo-error-1)
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Set a referer
curl_setopt($ch, CURLOPT_REFERER, "http://www.example.org/yay.htm");
// User agent
curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
// Include header in result? (0 = yes, 1 = no)
curl_setopt($ch, CURLOPT_HEADER, 0);
// Should cURL return or print out the data? (true = return, false = print)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Timeout in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// Download the given URL, and return output
$output = curl_exec($ch);
// Close the cURL resource, and free system resources
curl_close($ch);
return $output;
}Teszt:
$curl_download = curl_download('http://www.example.org/');
echo $curl_download; -
Sk8erPeter
nagyúr
válasz
Lacces #10540 üzenetére
Háde félreértettél, nem a Te hibád az, ha a nagy guru fejlesztő saját keretrendszerrel állt elő, amit nehéz használni.
Hát, segítenék szívesen, de ha nem mondasz konkrétabb példát, akkor nem tudom kitalálni, mi a helyzet.
Pedig az előbb épp hozzá akartam tenni, hogy sokat vakerászom itt a topicban is - mások nagy bánatára.
-
Sk8erPeter
nagyúr
válasz
Lacces #10538 üzenetére
"ő találta ki a keretrendszert"
Ezt úgy bírom, amikor valaki felfedezi a spanyolviaszt."Az egyszerű polimorfizmus nem működik benne... sem konstruktorral, igaz nem is jön létre objektum, hanem osztályok közötti öröklődés van csak... és hiába próbálom a gyermekben felülírni az ősosztályból származó adattagot, nem megy."
Konkrétum nélkül nehéz erre mit mondani, nem látjuk, mit csinálsz rosszul vagy értelmezel félre.Ja, hát igen, múlik az idő, és sokat vakerászom.
-
Sk8erPeter
nagyúr
válasz
Lacces #10518 üzenetére
Ja, de most végül is mi a kérdés?
Pont meg volt nyitva a NetBeans, úgyhogy bepötyögtem neked egy rövid példát a kódjaid alapján, abból hátha megérted, próbáld ki, kiírat minden szirszart:
<?php
class Admin {
public $valami = 0;
public function ez() {
return __METHOD__;
}
}
class Child extends Admin {
public function __construct() {
$this->valami = 1;
}
public function ez() {
return __METHOD__;
}
public function az() {
$parentMethodReturnValue = parent::ez();
return 'child: "'. __METHOD__.'", parent: "'.$parentMethodReturnValue.'"';
}
}
function my_var_export($var, $text = '...', $output_type = TRUE) {
if (gettype($var) === 'string') {
$var = htmlentities($var);
}
return '<p>' . $text . ($output_type ? ' (' . gettype($var) . ')' : '') . ':</p><pre>' . var_export($var, TRUE) . '</pre>';
}
$admin = new Admin();
$child = new Child();
echo my_var_export($admin, '$child');
echo my_var_export($admin->valami, '$child->valami');
echo my_var_export($child, '$child');
echo my_var_export($child->valami, '$child->valami');
echo my_var_export($child->ez(), '$child->ez()');
echo my_var_export($child->az(), '$child->az()');=================
KIMENET:
$child (object):
Admin::__set_state(array(
'valami' => 0,
))
$child->valami (integer):
0
$child (object):
Child::__set_state(array(
'valami' => 1,
))
$child->valami (integer):
1
$child->ez() (string):
'Child::ez'
$child->az() (string):
'child: "Child::az", parent: "Admin::ez"' -
Sk8erPeter
nagyúr
Miért kellene neked komplett osztályt létrehozni? Létrehozták neked a PHP fejlesztői, pont ezt linkeltem be, hogy mit tudnál felhasználni a célra. Csak használnod kell az előre megírt függvényeket, és ennyi. Nem nézted meg, amiket linkeltem?
Most gyorsan kipróbáltam egy szabályos HTML-tartalmú tesztfájllal, és ez tök jól működik, hogy egy adott id-t lekérve lecserélem a tartalmat:
<?php
$doc = new DomDocument();
$doc->loadHTMLFile('../testfile.php');
$lorem_ipsum = $doc->getElementById('lorem_ipsum');
$lorem_ipsum->nodeValue = 'pista';
$newHtmlContent = $doc->saveHTML();
echo $newHtmlContent;Így itt a <p id="lorem_ipsum">....</p> elem tartalmát módosítja arra, hogy "pista".
Nálad nyilván $doc->getElementById('headerBody'); lenne ennek megfelelője, és a nodeValue-ba a saját tartalmadat kellene pakolni - de akár azt is megcsinálhatod, hogy hozzáfűzöl/eléraksz a jelenlegi tartalomhoz még valamit, valahogy így:$lorem_ipsum->nodeValue = 'pista' . $lorem_ipsum->nodeValue;
Egyébként lehet, hogy ez a DOMDocument nem a leggyorsabb, de mint látható, nagyon jól használható XML- és (X)HTML-tartalmak feldolgozására, módosítására.
-
Sk8erPeter
nagyúr
Nyomathatnál egy $doc->getElementById('headerBody')-t, és lecserélhetnéd a tartalmát.
-
Sk8erPeter
nagyúr
Épp az előbb írtad, hogy az ékezetes karakter HTML-változata egy az egyben kiíródott, szóval az nem biztos, hogy jó lesz.
Egy-két érdekesebb hozzászólás a php.net-ről, ezeket mindenképp érdemes megpróbálni, itt főleg a base64_encode() függvény és egyéb megfelelő hozzáfűzések érdekesek:
[link]
[link]
[link]Na, de pont ezek miatt a szopások miatt javasoltam inkább a kész levelezőosztályok használatát.
Ha most ismerkedsz vele először, akkor is max. kb. 30 perc beállítgatni, ismerkedni vele, tesztelni, cserébe lesz egy könnyebben újrafelhasználható megoldásod. -
Sk8erPeter
nagyúr
Hát nem vágom pontosan, de szerintem fura, hogy nálad
Content-Transfer-Encoding: 7bit
van beállítva, miközben az UTF-8 épp, hogy 8 bites: "8-bit Unicode Transformation Format"
Most így hirtelen csak ezt szúrtam ki, aztán lehet, hogy valami tök más. -
Sk8erPeter
nagyúr
Nincs mit!
Még annyit hozzáteszek, hogy localhoston sokan szívnak azzal, hogy ugye nem megy a levélküldés SMTP-szerver híján.
Én ennek elkerülésére egyszerűen Gmailes SMTP-szervert veszek igénybe, ha már van náluk accountom, szerintem az a legegyszerűbb.
Erre is van példa a PHPMailer oldalán:Advanced Example using Gmail (for PHPMailer v5.0.0 and up)
Persze más SMTP-szervert is beállíthatsz hasonló módon, a lényeg, hogy a kód könnyen költöztethető legyen.
-
Sk8erPeter
nagyúr
Hát ha Te sem férsz hozzá az említett fájlokhoz, akkor úgy igen nehéz lesz segíteni annak, akinél a probléma előfordul.
Ezt mondjátok meg neki is, hogy látatlanban nem fogjátok tudni megoldani.
Egyébként én alapvetően kerülném az ilyen sima mail() függvényes szarakodást, mert egy csomó hibába lehet belefutni, amit aztán lehet debuggolni, miközben ezt mások már megoldották a PHPMailernél (innen kell letölteni a PHP5-től felfelé érvényes verziót [rossz a link ehhez a hivatalos honlapon (a 4-es PHP-hoz készült változatra mutat), milyen gáz, mindjárt írok nekik emiatt, hogy javítsák már ki, mert ötezer éve így van]: [link]) vagy más levelezésre szolgáló PHP-osztálynál (Swift Mailer, stb.).
Ezzel normálisan megoldott a HTML-tartalmú levelek küldése, a csatolmányküldés, és így tovább. Nagy eséllyel a karakterkódolást sem cseszi el, amennyiben az stimmel mindenhol - persze ha ez valahol alaposan el van rontva, akkor csodákra ezek az osztályok sem képesek. -
Sk8erPeter
nagyúr
Ez jó, pontosan ugyanaz a problémád, mint az előtted szólónak.
Pont ugyanúgy nehéz a fájlok hiányában nyilatkozni, ha már a korábban említetteket csekkoltad.(#9530) zsolty28 : akkor az is lehet a probléma forrása.
Ha feltöltenéd valami tárhelyre, akkor lehet, hogy meg tudnánk javítani neked szabadidőben a karakterkódolást. -
modder
aktív tag
Háttő
Én most hirtelen kétfélé többnyelvűséget tudok megkülönböztetni:
1) Az oldalon megjelenő statikus szövegek: navigáció, regisztráció, miegyéb. Itt általában olyan megoldás van (azt hiszem ilyen a Zend i18n modul is), hogy megadsz egy nyelvi fájlt, aminek minden sorában van egy angol szöveg - másnyelvű szöveg pár. Visszaadhat akár tömböt is (Kohana pl. ezt csinálja)return array(
'Welcome :user' => 'Isten hozott :user'
)majd kódban a szövegeket speciális függvénnyel íratod ki, ami éppen aktuális nyelvi beállításoknak megfelelő nyelven írja ki a szöveget:
echo __('Welcome :user' , array(':user' => 'Laci'));
2) Dinamikus szövegek: blogpostok, cikkek, amiket adatbázisban tárolsz. Ez a bonyolultabb téma. Azért is, mert egy adatbázis rekord nem csak szövegeket, hanem számokat, kapcsolatokat is tárolhat, amit nem akarsz redundánsan tárolni a többnyelvűség miatt. Ezek a megközelítések jutnak eszembe:
a) van egy entitás táblád, és van több entitás_nyelv táblád. Az entitás táblába beleteszed a nyelvfüggetlen adatokat:
mikor készült a cikk, ki a szerzője, mikor módosították, milyen kategória...Az entitás_nyelv táblába pedig beleteszel egy kapcsolatot az entitás táblára, és a nyelvfüggő dolgokat ebbe teszed: maga a cikk szövege, cím
szerintem ez elég tiszta megoldásb) ugyanabban a táblában tárolod egy entitás minden fordítására vonatkozó adatot, és beteszel egy nyelv mezőt. Ez azért jó, mert nem kell a kapcsolatokkal foglalkozni, viszont a nyelvfüggetlen adatokat valszeg redundánsan tárolod, és konzisztensen kell tartani, amikor valami frissül
c) brutálisan általános és lassú megoldás, de cachelhető kódból, ezt már egyszer megcsináltam
Van egy nyelv táblám, aminek mezői [ id, nyelv, tablanev, tablamezo, tablaPK , szoveg ]
gondolom ebből látszik, hogy mire megy ki a játék. Az összes entitásom összes szöveges mezőjét az összes nyelvre egy rekordként tárolom. Működő megoldás, nagyon dinamikus, nem kell meglévő adatbázisstruktúrát megváltoztatni, és ha cachelsz szöveget pl. APC-be, akkor még elfogadható sebességű is lehet. Ha nem cachelsz, akkor viszont túl sok adatbázis lekérdezés. -
vakondka
őstag
Szia,
Minden nyelvnek csinálj egy mappát (vagy csak 1-1 fájlt) amiben a nyelvi definíciók vannak állandókkal. és az oldaladon nyelvváltásnál töltsd be a megfelelő nyelvi fájl.
pl:
magyar.php:define('HEADER_TITLE_CREATE_ACCOUNT', 'Regisztráció');
define('HEADER_TITLE_MY_ACCOUNT', 'Személyes beállítások');
define('HEADER_TITLE_CART_CONTENTS', 'Kosár tartalma');
define('HEADER_TITLE_CHECKOUT', 'Megrendelés');
define('HEADER_TITLE_TOP', 'Főoldal');
define('HEADER_TITLE_CATALOG', 'Katalógus');
define('HEADER_TITLE_LOGOFF', 'Kijelentkezés');
define('HEADER_TITLE_LOGIN', 'Bejelentkezés');english.php
define('HEADER_TITLE_CREATE_ACCOUNT', 'Create an Account');
define('HEADER_TITLE_MY_ACCOUNT', 'My Account');
define('HEADER_TITLE_CART_CONTENTS', 'Cart Contents');
define('HEADER_TITLE_CHECKOUT', 'Checkout');
define('HEADER_TITLE_TOP', 'Top');
define('HEADER_TITLE_CATALOG', 'Catalog');
define('HEADER_TITLE_LOGOFF', 'Log Off');
define('HEADER_TITLE_LOGIN', 'Log In');Így amikor ki akarsz írni valamit akkor ezeket használod és a megfelelő nyelven fog megjelenni.
echo HEADER_TITLE_CREATE_ACCOUNT;
Van persze sok más megoldás is, de talán ez a legegyszerűbb.
-
Sk8erPeter
nagyúr
-
Speeedfire
félisten
A lényege, hogy van a test controller és abban egy test action. Ott volt megadva neki, hogy a test action az alapértelmezett.
Ja, a moduloknak kicsit másabb az útvonala.
De itt akár egyből meg is adhatod neki az action-t, illetve ha az index kell neked akkor nem fontos oda írni, mert alapból az index a default action.'defaultController' => 'shop/products/index', //helyett
'defaultController' => 'shop/products', -
Speeedfire
félisten
Nézd csak. [link]
class TestController extends CController
{
public $defaultAction = 'test';
public function actionTest()
{
}
}De, ahogy írja akár meglehet adni az urlmanager-ben is.
'components' => array(
'urlManager' => array(
'rules' => array(
'test' => 'test/test',
),
),
),Itt pl ha mármelyiket választod akkor a test controller test action-je lesz a default.
A modulok, úgy működnek, hogy létre kell hozni a protected alá egy modules mappát. Ide kell berakni a modulokat. Pl modules/user itt a user mappa alatt van a user extension. Lényegében akármilyen név alatt létre lehet hozni, mert a rendszer megfogja találni, de célszerű azért oda rakni, ahova a doksi írja.
De Sk8erPeter nagyon jól le is írta ezt neked. Ha bármi van kérdezz csak.
Sk8erPeter: Nem ég a beled? -
Sk8erPeter
nagyúr
"hol van a modul könyvtár?"
Gondolom létre kell hozni.... és igen, gyors Guglizás után - nem használtam még ezt a frameworköt - pl. itt mutatja a "Yii User Management Module" telepítésének módját: [link].
van ez a rész:
"Extract the Yii User Management Module under the modules/ directory of your new Web Application. Replace the _0.4 with the latest Version available.$ cd testdrive/protected
$ mkdir modules
$ cd modules
$ wget http://www.yiiframework.com/extension/yii-user-management/files/User_Management_Module_0.4.tar.bz2
$ tar xvf User_Management_Module_0.4.tar.bz2
""mkdir modules", magyarul ő is létrehozza a modules könyvtárat, aztán odanavigál, majd kibontja a modul tartalmát, amin belül először a modul nevét tartalmazó könyvtár van, ami jelen esetben - most letöltöttem - a "user" nevű.
"és hogy shop mappát rakjam oda, vagy a shop mappa tartalmát?"
Értelemszerűen ennél a modulnál is shop könyvtárat kellene beleraknod a modules könyvtárba. Ez ebben a formában elég logikus, gondolj bele, mi lenne, ha mondjuk 100 modult telepítenél, akkor 100 modul tartalma lenne ömlesztve? Az úgy irtó gány lenne.
Tehát ha most telepítenéd a fenti modult, meg azt a webshoposat, akkor elméletileg így kéne kinéznie a könyvtárszerkezetednek:yiikönyvtárad
|- ....
|- modules
|- shop
|- user
|- ...Épp azáltal lesz moduláris a felépítés, hogy jól elkülöníthető egységeket kapcsolsz hozzá a meglévő rendszeredhez (vagy épp választasz le róla).
Egész értelmesen sikerült megfogalmaznom egy liter bor és 5 sör után.
-
Lacces
őstag
A másik nagy bajom, az erősen félrevezetés a doksikban, vagy legalább is nem egyszerű olyannak aki most használ php frameworkot.
Gondoltam kipróbálom ezt, és telepítem:
yiishop
Hát nem jött össze, eléggé hogy is mondjam... már orosz rulettezek vele, de nem működik. már -1 egér
Azt írja, a modul könyvtárba csomagoljom ki. 2 kérdésem van, lenne a szerző felé, hol van a modul könyvtár? és hogy shop mappát rakjam oda, vagy a shop mappa tartalmát?Valaki tud benne segíteni?
-
Jim-Y
veterán
Na közben kiderült, hogy odáig el sem jut a program,
xmlhttp.open("GET","../SERVER/my_extension.php?query=cc",true);
xmlhttp.send();ha php-nak küldön el a kérést, akkor ebbe a ciklusba már bele sem megy:
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var jsonobj=new Function("return "+xmlhttp.responseText)();
$("#goodsResult").text(jsonobj.entity.countrycode);
}ellenben ha így küldöm el a requestet:
xmlhttp.open("GET","../SERVER/akarmi.json",true);
xmlhttp.send();akkor pedig jó. Ötlet, hogy ez miért lehet?
-
-
Speeedfire
félisten
Ne 2x kattints rá. Gondolom linux alatt lehetsz.
Linux alatt nyiss egy terminált, lépj be oda ahol a framework mappa van és add ki a parancsot. yiic webapp valami
Win alatt is hasonló, csak ott parancssort kell nyitni. Win alatt lehet szívás, ha a php környezeti változó nincs deklarálva. -
Sk8erPeter
nagyúr
Sehol nem írtam PHP CPL-ről...
A többire meg annyit javasolnék, hogy mielőtt másoktól várnád, hogy szinte vezessék az egeredet, hova kattints, és pötyögnének a billentyűzeteden, próbálj alaposan utánaolvasni, biztos hatmillió tutorialt találsz róla. Ha meg olyan alapvető kérdések merülnek fel, hogy mi az a command line vagy terminal, akkor előbb annak kellene utánanézni, és csak utána foglalkozni a komolyabbakkal. -
Speeedfire
félisten
Hogy csinálod, hogy felugrik a terminál majd eltűnik? A parancs után?
Amúgy érdemes elolvasni ezt is. Az alapok benne vannak, de töltsd le a hivatalos oldalról az api-t és a guide-ot is. Nagyon sok hasznos dolog van benne. Ha meg betudod szerezni még a cookbook-ot is, akkor meg már...
-
PazsitZ
addikt
A yii-t ahova felraktad ott van a framework könyvtárában van egy yiic futtatható fájl, windows alatt yiiic.bat
Ezt hívod meg, első paraméterként megadva, hogy webapp webes alkalmazást akarsz, második paraméterként pedig, hogy hova szeretnéd kigenerálni, az alap webapp könyvtárat.
Szóval:
/framework_utvonala/yii/framework/yiic webapp /ide_rakd_a_web_applicationt -
Sk8erPeter
nagyúr
Veled jól járnak a könyvesboltok.
Nem tudom, mit nem értesz a Server Faulton fent lévő válaszon.
Mondjuk nem ártana, ha utánaolvasgatnál, hogyan csináld, mielőtt pánikolsz (ez nagy általánosságban is igaz), pl. nagyon gyors keresés után itt is megvan az, amit írtál: [link]. Vagy még jobb: [link].
Ott van halál egyértelműen az is, hogy mitől működik (többek közt):
"Tip: In order to use the yiic tool as shown above, the CLI PHP program must be
on the command search path. If not, the following command may be used instead:
path/to/php /wwwroot/yii/framework/yiic.php webapp /wwwroot/blog"
Ebből egyértelmű, hogy a PHP terminálban használható változatának elérési útja alatt kell végrehajtani azt, amit írtál, vagy környezeti változók közé kell tenni a PHP CLI elérési útját, ÉS még ezenkívül nyilván léteznie is kell a /wwwroot/yii/framework/yiic.php elérési út alatt a megfelelő fájlnak... (remélem nem kell hozzátennem, hogy ez a wwwroot könyvtár nem a Szentírás, attól függ ez az elérési út is, hogy hova rakod...)
Egyébként ha fogalmad sincs, mit csinálj, miért nem olvasgatsz magyar fórumokat? Ott volt a link hozzá a hivatalos honlapon:
http://www.yiiframework.com/forum/index.php/forum/33-hungarian/ -
fordfairlane
veterán
És azt fogom csinálni, amit mondtál, csak előbb érteni akarok mindent, átvenni az alapjait. És után már csak a "kódokat elrendezni"
Világos, én azt javaslom, hogy eleve külön fájlba kerüljenek a lekérdezések a kiíratáshoz képest, egy harmadikba a kettő include-ja. Ne utólag alakítsd így a programot, hanem eleve így kezdj hozzá.
-
fordfairlane
veterán
Értem. Az MVC-t szerintem nehéz megtanulni könyvből, és szerintem túlmisztifikált a dolog a legtöbb leírásban. Többre mész azzal, ha egy meglevő framework-öt kezdesz el próbálni használni, rengeteg ötletet lehet begyűjteni az ilyenből viszonylag rövid idő alatt, és sokkal gyakorlatorientáltabb megközelítés, mint ami a legtöbb könyvben példakód szinten megtalálható. És ha már látod, hogyan megy ez a gyakorlatban a dolog, utána már az elv egyszerű.
Az elv lényege, hogy a kódot nagyjából három részre bontod. Egyszer van egy logikai egység, vagyis fájl, osztály, akármi, amelyik kezelni az adatokat, azok perzisztenciáját (adatbázis), validálás, stb, ez a modell. Egyszer van egy megjelenítési kódblokk, ez a nézet, vagyis view, és van egy harmadik, a vezérlő, vagy kontroller, amelyik a vezérlési szerkezetet implementálja, a nézetet és a modellt összekapcsolja.
Szerintem első körben érdemes úgy felépíteni a programot, ha nem framework-öt használsz, hogy csinálsz egy olyan fájlt, amelyik az összes adatbázis műveletet tartalmazza. Aztán csinálsz egy másikat, amiben, és csakis kizárólag ebben van a html, illetve a html-be beágyazás rész, valamint egy harmadik fájl az, amelyik a kettőt összerakja. A nézetben nem lehet adatbázisművelet. A modellben nem lehet html, vagy html formázásra utaló művelet. A kontrollerben egyik sem.
-
tob!as
tag
Személyes tapasztalataim nagyon vegyesek.
Interjú #1: Kaptam egy 5 oldalas tesztet HTML, CSS, JS, PHP vegyesen. Inkább alapokra, meg trükkösebb dologra kérdeztek rá benne (pl mi a különbség display:none, visibility:hidden között, stb). Nem volt vészes. Egyedül egy átgondoloandó kérdés volt a tesztben, ahol annyi volt a kérdés, hogy keress nxn-es mátrixban 3x3-as mátrixot, és ennek írd fel az algoritmusát. De ez sem vészes.
Interjú #2: Átbeszéltük, hogy mit csináltam eddig, mivel foglalkoztam. Erre közölte a csávó, hogy nálam sitebuildet érzi nagyon erősnek (elmondás alapján) de ők nem csak ilyet keresnek, de majd meglátjuk. Kaptam otthon elvégzendő feladatot, majd később ide is sikerült bekerülnöm.
Interjú #3: Egy leendő főnökömmel elbeszélgettünk szintén szóban, de előtte volt egy papír, a témakörökkel.
Szintén PHP, CSS, JS, HTML kérdésekkel. De tényleg alapok. Ha megvan egy stabil tudás, akkor nem lehet szerintem gond.
Ide csak azért nem kerültem be, mert nem volt kifejezetten csoportmunka tapasztalatom, és kaptam a D2 jelölésem mellé egy db mínusztBízom benne, hogy sikerült segíteni.
-
Peter Kiss
őstag
Mindkettő rossz. Az első azért, mert tömböt használsz olyan dologra, amire nem való. Gondolj csak bele: a tömb általában ugyanolyan típusú elemek sora, nem pedig össze-vissza mindennek.
A második azért rossz, mert egyszerűen szar.
Hogyan akarod így elválasztani a program egyes részeit? Hogyan fogod így átnyomni mondjuk a DAL-ból a BLC-n át a megjelenítésig?
A legkézenfekvőbb megoldás az, ha object-et fetch-elsz belőle, ez lehet akár stdClass típusú is, de ajánlott sajátot hegeszteni, és akkor menni fog a type hint is.
---
Az a cég meg valami garázscég lehet.
-
Tele von Zsinór
őstag
Én nagyjából az előbbit szoktam használni - jobban szeretem, ha egy tömbbe kerülnek bele a rekordok, és akkor teljesen egyértelmű, hogy ez sima változó, amaz meg adatbázisból jön (mert jóval később, amikor már a template résznél jársz, nem szokott egyértelmű lenni).
Az alternatív vezérlési szintaktikának nézz utána, mert a { ?> nagyon ronda. Így képzeld el:
<?php foreach ($izek as $valami): ?>
ide jön a html
<?php endforeach ?> -
Peter Kiss
őstag
PHP-hoz nem kell könyv, ott a php.net. Debugger van PHP alá is.
Java webapp-ot még nem hegesztettem, arról nem tudok véleményt mondani. ASP.NET-est már igen, abban pl. a sima Web Forms részével ajánlott pl. intranetes oldalakat építeni, mert nagyon gyorsan és egyszerűen lehet vele biztos alapokon nyugvó alkalmazást készíteni a .NET teljes támogatásával. Rugalmasságban nyer mindenhol a PHP, de azt gondolom, hogy ASP.NET MVC-vel hasonló eredményeket lehet elérni úgy, hogy sokkal több eszköz áll a rendelkezésére a fejlesztőnek. Javasat is valahogy így tudom elképzelni, de alapvetően nem szeretem a Java-t.
-
Speeedfire
félisten
Nem lehet, hogy kicsi a post xyz. Nem jut hirtelen eszembe a neve. Meg van adva, hogy a postolásnak mekkora lehet a maximális mérete.
Szerk.: post_max_size = x MB
Tehát, hiába adod meg neki, hogy a max fájlméret 20MB, ha a post_max_size kisebb. Ergó lehet, hogy 2 nagy kép felmegy, de 3 már nem.
-
Szia!
Én is szemeztem a Yii -vel, marha jó de kezdésnek nem azzal foglalkoztam, hanem a Kohanával - sok rosszat hallok a CakePHP -ről ezért az nem is jött számításba. Hogy miért éppen a Zend? Egyike az első keretrendszereknek, továbbá ha jól tudom a "leg leg" biztonságosabb.
-
PazsitZ
addikt
Az mvc mindenképp jó lehet a kód szervezésben. Viszont az esetedben úgy látaom inkább más a hangsúly. Mivel a kód és html sok framework esetén sincs szétválasztva, csak szétbontva ezáltal minimalizálva.
Tehát szvsz. neked lehet elég lenne kertrendszer helyett egy template-ező motor használni.
pl.: Smarty, Dwoo
Bizonyos szintű template kezelést akár meg lehet oldani egyszerű saját függvényekkel is, de persze kész motor biztonságosabb és komplexebb megoldást nyújt. -
Tele von Zsinór
őstag
Mivel általában úgyis adatbázis-rekordhoz kötöd a képet, annak az id-je tökéletes lesz a file nevének is. Ha egy rekordhoz több tartozik, akkor meg valami suffix eldönti, melyik melyik (1_small.png, 1_large.png).
CSorBA: http://demo.icu-project.org/icu-bin/locexp?d_=en&_=ru_RU
Új hozzászólás Aktív témák
Hirdetés
- HP EliteBook 855 G8, 15,6" FHD, Ryzen5 PRO 5650U CPU, 16GB DDR4, 256GB SSD, WIN 11, ( olvasd végig )
- Dell Precision 5520, 15,6" 4K/UHD Touch, I7-7820HQ CPU, 32GB DDR4, 512GB SSD, M1200 4GB VGA, WIN 11,
- Dell Precision 3561, 15,6" FHD, I7-11850H CPU, 16GB DDR4, 512GB SSD, T600 4GB VGA, WIN 11, ( olvasd
- Dell Latitude 5520, 15,6" FHD Érintőkijelző, I5-1135G7 CPU, 16GB DDR4, 256GB SSD, WIN 11, ( olvasd v
- Új MSI KATANA 15 Gamer Tervező Laptop 15,6" -35% i7-12650H 10Mag 16/512 RTX 4070 8GB FHD 144Hz
- DELL Universal Dock D6000 dokkolók, RTX Legion Pro laptopok 4 év Lenovo garanciával, licencek
- LG 65C2 - 65" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
- Lenovo Legion Pro 5 16IRX9
- Fujitsu USB Port Replicator PR09 docking station (1x5K vagy 2x4K felbontás) (DisplayLink)
- Gombászkönyvek egyben
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged