Ako správne programovať – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako správne programovať – PHP – Fórum – Programujte.comAko správne programovať – PHP – Fórum – Programujte.com

 

Anonym
~ Anonymní uživatel
454 příspěvků
9. 10. 2013   #1
-
0
-

Zdravím, chcel by som sa spýtať skôr skúsených programátorov, PHPčku sa venujem už nejaký ten čas, programovať v ňom viem, respektíve neviem, keďže neviem všetko.

Stále programujem tou istou formou ako pred 2 -3 rokmi a teda som "zaspal dobu" a teda žiadne OOP, samé echo aj tam kde by byť nemalo a v poslednej dobe, miešanie HTML tagov s PHP ako napr.

<ul>
<li><?php echo premenna;?></li>
</ul>

Viem, že ani jedna z týchto vecí nie je dobrá, samého ma to veľmi hnevá a tak by som sa rád spýtal ako to zmeniť, ako správne začať s OOP, čo oddeľovať a čo nie,ako deliť celé aplikácie, aké a či používať šablonóvacie nástroje,prípadne ako správne využívať CACHE či už vo vnútri aplikácii, alebo pri obrázkoch a pod.

Naozaj by som sa veľmi rád posunul o niečo dopredu, prípadne sa začal venovať nejakému FW, ale s týmto, čo doteraz robím, to jednoduché nie.

Ďakujem za každú radu, je mi jasné, že to nárazovo nepôjde, ale ako sa hovorí, "pomaly človek ďalej zájde".

Anonym

Nahlásit jako SPAM
IP: 95.105.244.–
vojtos
~ Anonymní uživatel
1 příspěvek
9. 10. 2013   #2
-
0
-

#1 Anonym
http://nette.org/

Koukni na tohle ;-)

Nahlásit jako SPAM
IP: 88.100.165.–
peter
~ Anonymní uživatel
3981 příspěvků
9. 10. 2013   #3
-
0
-

"samé echo" - ob_start pouzivas?

"miešanie HTML tagov s PHP" - je dobre php zpracovat na jednom miste, ulozit do promennych a pak mit uz jen html s vypisem. Lepe se v tom orientuje, nemas v php kodu more html tagu, ktere pro php nepotrebujes. A tez nemusis drzet dlouho otevrene pripojeni s databazi.

"správne využívať CACHE" - hlavne je dobre se zbavovat velkych promenny, co nejdriv to jde a snazit se minimalizovat data ziskavana ze souboru, databazi (co nejmene nejlogictejsich sql dotazu)

"FW" - spousta lidi doporucuje cesky nette

Vyborne je tez naucit se pouzivat classy, do kterych si pak zabalis tebou pouzivane funkce logicky souvisejici. Ttreba si muze udelat class, ktery resi prihlasovani, jiny sql, dalsi obrazky (zmensovani, zvetsovani), dalsi upload souboru, odstranuje diakritiku + vytvari jmena souboru bez diakritiky a opakovani znaku, ...

Ja jsem spis zatim v tom takovy amater, ale php se mi moc zamlouva, hlavne kvuli prehledne dokumentaci s priklady od uzivatelu. Priklady jsem mel rad uz v ceskem helpu turbo pascalu 6. Tehdy jeste nefungoval google a furt vymyslet, jak se pise priklad na readkey se mi nechtelo :) Bylo jednodussi napsat readkey, zmacknout ctrl+f1 a priklad si pres ctrl+ins, shift+ins prekopirovat a upravit.

Nahlásit jako SPAM
IP: 193.84.207.–
Anonym
~ Anonymní uživatel
454 příspěvků
9. 10. 2013   #4
-
0
-

#2 vojtos

Ako som písal vyššie, OOP nevyužívam a potrebujem skôr radu, ako s ním začať.

#3 peter

Ďakujem za rady, ob_start som začal používať, ale len to, žiadne ďalšie ako ob_flush či podobne.

Ak som správne pochopil máš na mysli html kód s tým že medzi tagmi je len napr. {$content} ?

Osobne (asi preto, že OOP mi zatiaľ moc nevraví) sa mi zdá Nette ťažký, skôr sa mi zapáčil CodeIgniter, ale taktiež v tom nie som doma, potreboval by som hlavne postrčiť, ohĺadom OOP a šablón, nech robím webi lepšie.

Ďakujem za akékoľvek ďalšie rady.

Nahlásit jako SPAM
IP: 95.105.244.–
peter
~ Anonymní uživatel
3981 příspěvků
10. 10. 2013   #5
-
0
-

Tak zkus neco jednoducheho, treba jen zapis chybovych stavu do souboru. Ten kod je trochu slozitejsi, ale treba to pochopis. Rozdil proti klasickym funkcim je jen v tom, ze je vsechno obalene do jedne promenne. Coz je soucasne vyhoda, protoze pak pri kopirovani nemuzes zapomenout na cast kodu. Ale musis se zbavit takoych zlozvyku jako global a nebo global pouzit nejlepe pro celou class, abys pak u podfunkci nemusel dohledavat, ktere veci z vnejsku treba jeste prikopirovat.

<?php
class ClassLog
{
private $cl_file = null;
private $cfg = null;
public $err;
public $data;

	function __construct($filename)
	{
	$cfg = array(
		'filename'    => $filename,
		'filetimeout' => 5000
		);
	$this->cfg  = $cfg;
	$this->err  = array();
	$this->data = array();
	}

	function __destruct()
	{
	//$this->write();
	}

	public function add($str)
	{
	$str = trim($str);
	if ($str!=="")
		{
		$this->data[] = date("Y-m-d H:i:s",time()) . " " . $str;
		$this->write();
		}
	}

	public function write()
	{
	$str = implode("\n",$this->data)."\n";
	echo nl2br($str);
	$this->writeFile($this->cfg['filename'],$str,$this->cfg['filetimeout'],'a');
	$this->data = array();
	}

	public function writeFile($_file_name,$_data_to_save,$_end_time=5000,$_type='w',$_mod='0755')
	{
	$old = umask(0);				// prava precti
	@chmod($_file_name,$_mod);			// prava nastav
	$fp  = fopen($_file_name,$_type);		// file pointer | handle
	if ($fp)
		{
		$start_time = microtime();
		do	{
			$can_write = flock($fp, LOCK_EX);
			if (!$can_write)
				{usleep(round(rand(0,100)*1000));}
			}
		while ((!$can_write) and ((microtime() - $start_time) < $_end_time));
		if ($can_write)
			{fputs($fp,$_data_to_save);}	// zapis
		else	{$this->err[] = 'writeFile|file_not_written|'.$_file_name; return false;}
		fclose($fp); 
		umask($old);				// prava vrat
		}
	else	{$this->err[] = 'writeFile|file_not_open|'.$_file_name; return false;}
	return true;
	}
};

$log = new ClassLog('soubor.txt');
$log->add('chybova hlaska');
$log->add('dalsi chybova hlaska');
?>

Hlavne se to da pak pouzit pro vice veci naraz. Treba, kdyz pouzivas 2 ruzna pripojeni k sql, tak si je zapises jako
$sql1 = new ClassSql('server','jmeno','heslo','db');
$sql2 = new ClassSql('server','jmeno','heslo','db');
A pak pouzivas jako
$sql1->query('...');
$sql2->query('...');
Coz je velmi fajn, ze je konstrukce stejna.

 

Nahlásit jako SPAM
IP: 193.84.207.–
Anonym
~ Anonymní uživatel
454 příspěvků
12. 10. 2013   #6
-
0
-

#5 peter

Ďakujem, no popravde sa k tomu budem musieť nejako dokopať, hľadal som aj nejakú českú či slovenskú knižku s OOP, asi som zle hľadal a nič som nenašiel, ale ja som vždy spokojný, ak má niečo po lopate vysvetlené a teda žiadne omáčky a potom pri skúšaní to už viem lepšie a lepšie aplikovať.

Ono hlavne mi ide aj o optimalizáciu, nech by tie stránky fičali čo najrýchlejšie, ale to sa dá len s nejakým šablonovacím nástrojom, alebo stačí všetko objektovo a len do HTML niečo ako {$content}? 

Ešte nejaký tip na dobrú optimalizáciu okrem o_start?

Vďaka.

Nahlásit jako SPAM
IP: 95.105.244.–
Kit+15
Guru
13. 10. 2013   #7
-
0
-

#6 Anonym
Nejlepší a nejrychlejší šablonovací nástroj v PHP je Heredoc. Dají se v něm elegantně dělat šablony objektově.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Anonym
~ Anonymní uživatel
454 příspěvků
13. 10. 2013   #8
-
0
-

#7 Kit

Vďaka a nejaká slušná stránka, kde je nejaký konkrétny návod? 

Ďakujem

Nahlásit jako SPAM
IP: 95.105.244.–
Kit+15
Guru
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
nobody
~ Anonymní uživatel
22 příspěvků
14. 10. 2013   #10
-
0
-

Cao, ohledne OOP bych ti doporucil tyto zdroje:

http://objekty.vse.cz/Main/HomePage

http://docs.oracle.com/javase/tutorial/java/concepts/index.html (sice Java, ale jde o vysvetleni pojmu OOP coz zvladli dle me moc dobre)

http://en.wikipedia.org/wiki/Object-oriented_programming (v anglictine je to spracovano velice dobre a externi zdroje jsou taky skvele)

OOP ti prijde lehke, jen co jej pochopis :)

Nahlásit jako SPAM
IP: 2a02:598:7001:101:e2db:55...–
kroky0
Duch
16. 10. 2013   #11
-
0
-

OOP:

http://www.martinus.sk/?uItem=46860

Nahlásit jako SPAM
IP: 178.40.208.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý