DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > DevProTalk > Sva početnička pitanja
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

Sva početnička pitanja Sva početnička pitanja bi trebala da se postavljaju u ovom forumu, a ako se pretvori u kvalitetnu diskusiju interesantnu svima - prebacićemo je u odgovarajući forum. Molimo "znalce" da ne omalovažavaju početnike, ako žele da pomognu svi ćemo biti zahvalni, ako ne žele, neka preskoče ovaj forum.

Odgovori
 
Alati teme Način prikaza
Staro 19. 11. 2012.   #1
Ivan988
novi član
 
Datum učlanjenja: 14.11.2012
Lokacija: Pancevo
Poruke: 3
Hvala: 4
0 "Hvala" u 0 poruka
Ivan988 is on a distinguished road
Default PHP framework i TDD... Kad?

Nekoliko meseci ucim php, poceo sam i sa OOP-om. Ustvari ja to zovem OOP, ali vise je nabacivanje funkcija u klasu (na ovom forumu sam procitao tu frazu)

I sada me zanima kada da pocnem da koristim PHPUnit ili nesto drugo za TDD?
Kao i kada da pocnem da koristim neki framework?

Kada sam pomenuo Codeigniter jednom iskusnijem programeru rekao mi je da ne treba ni da mislim na ci dok ne budem znao savrseno php.
Ali da li je moguce da neko savrseno zna php?
Ivan988 je offline   Odgovorite uz citat
Staro 19. 11. 2012.   #2
razno
Miljenko Rebernišak
Qualified
 
Avatar razno
 
Datum učlanjenja: 05.03.2009
Lokacija: Jagodina-Beograd
Poruke: 191
Hvala: 4
25 "Hvala" u 22 poruka
razno is on a distinguished road
Default

Moguce je, sto nebi bilo ?

Sto se tice PHPunit-a zavisi sta pises i koliko kompleksno. Recimo ako radis nesto sa finansijama, svakako to treba posebno istestirati, tu bi ga recimo koristio.
Za prostije stvari istestiras unosenjem primera rucno (moze i automatski,sa nekim alatima) i verifikujes rezultat. Vecinom ljudi ovako rade testiranje. Sa druge strane znam i neke firme koje ni proste stvari ne pustaju u produkciju dok ne prodju ove testove, ali se uglavnom radi o veoma posecenim sajtovima ili specificnim aplikacijama.

Sto se tice framework-a on ti sluzi da ti olaksa neke stvari i da ne izmisljas toplu vodu ponovo. Na timskom radu sigurno je bolje koristiti fw, jer ga svi znaju, dobra je dokumentacija(uglavnom) i dobro je testiran, u odnosu na custom klase i komponente.
Sto se tice kada treba da pocnes da ga koristis, ja bi ti rekao kada mozes da razumes ono sto radis. Svakako da je sto sire php znanje pozeljno
__________________
Me on twitter
razno je offline   Odgovorite uz citat
"Hvala" razno za poruku:
Staro 19. 11. 2012.   #3
webarto
expert
Grand Master
 
Avatar webarto
 
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
webarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished road
Default

Izvini, je li iskusniji programer koristi CI?

Je li se može pogledati neki code što si napisao?
__________________
Github // LinkedIn // PHP // ZCE // Stackoverflow PHP // Site5 Web Hosting
webarto je offline   Odgovorite uz citat
Staro 19. 11. 2012.   #4
Ivan988
novi član
 
Datum učlanjenja: 14.11.2012
Lokacija: Pancevo
Poruke: 3
Hvala: 4
0 "Hvala" u 0 poruka
Ivan988 is on a distinguished road
Default

Ne ne, ali meni su za jedan posao trazili CI, pa sam resio da prvo njega naucim.

Poceo sam da pisem jednu klasu (moju prvu klasu, zato budite nezni ), tek sam poceo sa njom, tako da imam jos par metoda da dodam i nesto da popravim.

PHP kôd:
<?php

/**
 * Users
 * 
 * Class for registering new users
 *
 * @author Ivan Toncev 
 */
class Users {
    
    protected 
$conn;    //db connection
    
protected $formStatus//status of form inputs
    
protected $tableName//name of db table where 
    
    
    /**
     * 
     * Connecting to database
     * 
     * @param string $db Name of Database
     * @param string $user User name for MySQL
     * @param string $pass Password for MySQL
     * @param string $host OPTIONAL default is localhost
     */
    
public function __construct($db$user$pass$tableName$host 'localhost'){
        
        try
        {
            
$this->tableName $tableName;
            
$this->conn = new PDO("mysql:host={$host};dbname={$db}"$user$pass);
            
$this->conn->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        }
        catch(
PDOException $e){
            echo 
'Error: '.$e->getMessage();
        }
        
    }
        
        
/**
         * 
         * This method will validate form
         * 
         * NEED TO BE FIXED
         * 
         * @return boolean
         */
        
protected function checkInputs($userName$password$repPassword$email)
        {
            
            if(!
$userName){
                
$this->formStatus "You must fill User Name field<br />";
                return 
FALSE;
            }
            if(!
$password){
                
$this->formStatus "You must fill Password field<br />";
                return 
FALSE;
            }
            if(
$password !== $repPassword){
                
$this->formStatus "Password and Repeat Password field don't match<br />";
                return 
FALSE;
            }
            if(!
$email){
                
$this->formStatus "You must fill email field<br />";
                return 
FALSE;
            }
            
            return 
TRUE;

        }
        
        
        
/**
         * 
         * Insert new User 
         * 
         * @param string $userName
         * @param string $password
         * @param string $repPassword
         * @param string $email
         * @throws Exception
         */
        
public function createNewUser($userName$password,$repPassword$email)
        {
            
            try
            {
                
                if(!
$this->checkInputs($userName$password$repPassword$email)){
                    throw new 
Exception($this->formStatus);
                }
                
                
$sql "INSERT INTO $this->tableName(userName, password, email) 
                            VALUES(:userName, :password, :email)"
;
                
$stmt=$this->conn->prepare($sql);
                
$stmt->execute(array("userName"=>$userName"password"=>$password"email"=>$email)) 
                            or die(
"Could not insert data in database");
                echo 
"Success<br /><a href='signUp.php'>Back</a>";
                
            } 
            catch(
Exception $e)
            {
                echo 
$e->getMessage();
                echo 
"<a href='signUp.php'>Back</a> ";
            }
            
        }
    
}

?>
Jos jednom da kazem, nije ni blizu kraju. A verovatno ima i gresaka u spelovanju...

Poslednja izmena od Ivan988 : 19. 11. 2012. u 22:17.
Ivan988 je offline   Odgovorite uz citat
Staro 20. 11. 2012.   #5
kickloop
Mister
Master
 
Avatar kickloop
 
Datum učlanjenja: 25.11.2007
Poruke: 626
Hvala: 114
641 "Hvala" u 96 poruka
kickloop će postati "faca" uskorokickloop će postati "faca" uskorokickloop će postati "faca" uskorokickloop će postati "faca" uskorokickloop će postati "faca" uskorokickloop će postati "faca" uskoro
Pošaljite poruku preko Skype™ za kickloop
Default

Citat:
Originalno napisao webarto Pogledajte poruku
Izvini, je li iskusniji programer koristi CI?

Je li se može pogledati neki code što si napisao?
Citat:
Originalno napisao Ivan988 Pogledajte poruku
Ne ne, ali meni su za jedan posao trazili CI, pa sam resio da prvo njega naucim.
Sa emfazisom na "tražili za posao".

Primetio sam da @webarto uvek pljuješ CI a nikada ne kažeš zašto. Možeš li pojasniti, pliz.

Kohana, Yii, bla-bla a svi traže CI.
__________________
When you assume, you make an ass out of u and me
kickloop je offline   Odgovorite uz citat
Staro 20. 11. 2012.   #6
webarto
expert
Grand Master
 
Avatar webarto
 
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
webarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished road
Default

Ne pljujem, samo kažem da ne valja, i da je najgore što možeš preporučiti početniku, jer će stvoriti iskrivljenu sliku u vezi OOP i MVC u glavi koju će teško ispraviti. Kohana je dobra, koliko-toliko. Za Yii nemam mišljenje.
To što je traženo, ne znači da valja (e.g. Wordpress), već da "svi znaju", da se može jeftino naći radna snaga, i da radi posao (samo je pitanje kako)... ali me stvarno to ne zanima, svakome njegovo

Prvo, Users ne treba da brine o konekciji na bazu, to ćeš postići koristeći Dependency Injection.

Pročitaj http://nikic.github.com/2011/12/27/D...ASP-SOLID.html i nadam se da će ti biti jasno šta da ne koristiš (a ovoga je CodeIgniter prepun), i šta da koristiš.

Nemam više vremena

PHP kôd:
 <?php

class Users
{

  protected 
$_db;
  protected 
$_errors = array();

  public function 
__construct(PDO $db)
  {
    
$this->_db $db;
  }

  protected function 
checkInputs($userName$password$repPassword$email)
  {
    if (
$password !== $repPassword)
    {
      
$this->_errors[] = "Password and Repeat Password field don't match";
    }
    return empty(
$this->_errors);
  }

  public function 
createNewUser($userName$password$repPassword$email)
  {

  }

}
__________________
Github // LinkedIn // PHP // ZCE // Stackoverflow PHP // Site5 Web Hosting
webarto je offline   Odgovorite uz citat
"Hvala" webarto za poruku:
Staro 20. 11. 2012.   #7
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

TDD i pravljenje testova nije bas sasvim ista stvar. TDD podrazumeva da se prvo napisu testovi, pa se tek onda kodira. Time se (jednom kad se naviknes) stedi vreme jer nema potrebe da radis 2x istu stvar tako sto prvo rucno testiras (kako to vecina nas ima obicaj), pa tek onda dodajes testove. Da ne pricamo koliko je smaranje pisati testove za stari kod, kad moras da se prisecas sta kako radi...

A inace testovi imaju smisla samo za kod koji ce se menjati u buducnosti. Znaci ako pravis sajt za frizerski salon za 300e, nema smisla da se time gnjavis. Ako pravis web aplikaciju i ocekujes da ce se to razvijati, refaktorisati, prosirivati onda su testovi spas. Izmenis sta treba, pustis testove, i ako prodju znas da najverovatnije nista nisi pokvario... ako nemas testove onda moras sve to da proveravas rucno i ako to radis cesto (u mnogim web aplikacijama se to radi na dnevnom nivou) onda se to svede na isto kao da pravis unit testing, samo kao da svaki put pises sve testove iz pocetka....
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat
"Hvala" ivanhoe za poruku:
Staro 20. 11. 2012.   #8
webarto
expert
Grand Master
 
Avatar webarto
 
Datum učlanjenja: 11.04.2010
Poruke: 998
Hvala: 141
959 "Hvala" u 153 poruka
webarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished roadwebarto is on a distinguished road
Default

Backing up @ivanhoe with links...
http://stephenwalther.com/archive/20...nit-tests.aspx
http://www.martinfowler.com/bliki/Te...velopment.html
__________________
Github // LinkedIn // PHP // ZCE // Stackoverflow PHP // Site5 Web Hosting
webarto je offline   Odgovorite uz citat
Staro 20. 11. 2012.   #9
Ivan988
novi član
 
Datum učlanjenja: 14.11.2012
Lokacija: Pancevo
Poruke: 3
Hvala: 4
0 "Hvala" u 0 poruka
Ivan988 is on a distinguished road
Default

Hvala na pomoci!

Citat:
Originalno napisao webarto Pogledajte poruku
Ne pljujem, samo kažem da ne valja, i da je najgore što možeš preporučiti početniku, jer će stvoriti iskrivljenu sliku u vezi OOP i MVC u glavi koju će teško ispraviti.
Ok, da znam, jer je to jos jedan razlog zasto sam hteo da naucim neki framework. Mislio sam da cu tako videti kako MVC treba da izgleda.
Ivan988 je offline   Odgovorite uz citat
Staro 21. 11. 2012.   #10
mangia
Pukovnik u penziji
Grand Master
 
Datum učlanjenja: 11.10.2006
Lokacija: Banjaluka, BiH
Poruke: 941
Hvala: 209
585 "Hvala" u 137 poruka
mangia će postati "faca" uskoromangia će postati "faca" uskoromangia će postati "faca" uskoromangia će postati "faca" uskoromangia će postati "faca" uskoromangia će postati "faca" uskoro
Pošaljite poruku preko MSN za mangia Pošaljite poruku preko Skype™ za mangia
Default

Ja nisam neki programer ali čisto da preporučim da prevode definišeš negdje van klasa i da pustiš samom korisniku da koristi jezik koji želi...
__________________
mangiaphoto | BLOGERAJBLOG | ServerAdminBlog
mangia je offline   Odgovorite uz citat
"Hvala" mangia za poruku:
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum


Vreme je GMT +2. Trenutno vreme je 08:44.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.