Hocam haklısınız ben sadece bu classları falan kurcalayarak pratik yapıyorum sınıfı öylesine yazdim

pratik amaçlı yani

Yinede teşekkürler
Hocam şimdi sizin dediğinize göre mesela uzunluk değer kontrolleri olan bir class olmalı, database işlemleri için bir class olmalı. Doğrumudur?
Evet ve hayır.

Veritabanı işlemleri için ayrı bir sınıf, fakat uzunluk kontrolü için ayrı bir sınıf yazmak tamamiyle gereksizdir. Uzunluk kontrolünü "register" metodu içerisinde iki satırda yaparsınız zaten. Ya da uzunluk kontrolünü bir "Utility" (yardımcı araç-gereçler) sınıfı içerisinde bir metot olarak tanımlarsınız.
Özetle eğer yapmak istediğinizi ben yapıyor olsaydım şöyle bir şey yapardım:
<?php
class Utils
{
static public function lenghtControl($data, $min, $max)
{
$dataLenght = strlen($data);
/*
Birgün burada şu CoffeScript tarzı şu satırı kullanabilme ümidiyle yazıyorum bu satırı. :)
return $min < $dataLenght < $max;
*/
return $dataLenght > $min || $dataLenght < $max;
}
// Diğer yardımcı metotlar...
// Burada metotların "static" olmasına dikkat edin.
}<?php
class User
{
protected $_db;
protected $_username;
protected $_password;
// Kullanıcıya ait diğer özellikler...
public function __construct(Database $db)
{
$this->_db = $db;
}
public function register()
{
if (!Utils::lenghtControl($this->_username, 6, 32))
{
echo 'Kullanıcı adı 6-32 karakter aralığında olmalıdır!';
return;
}
if (!Utils::lenghtControl($this->_password, 6, 32))
{
echo 'Kullanıcı parolası 6-32 karakter aralığında olmalıdır!';
return;
}
// Veritabanı kayıt işlemleri...
//
// $this->db->insert('users', array(
// Veriler...
// ));
}
public function login()
{
// Kullanıcı giriş işlemleri...
}
// Getter/Setter metotları...
public function getUsername()
{
return $this->_username;
}
public function setUsername($value)
{
$this->_username = $value;
return $this;
}
public function getPassword()
{
return $this->_password;
}
public function setPassword($value)
{
$this->_password = sha1($value);
return $this;
}
// Diğer kullanıcı metotları...
}<?php
class Database
{
public function insert($table, array $data)
{
}
}<?php
$db = new Database;
$user = new User($db);
$user->setUsername($_GET['u'])
->setPassword($_GET['p']);
$user->register();
Sadece editörde yazıp gönderdim. Çalıştırmadım, çalışmaması normal. Sadece yapısal olarak örnek almanız içindi bu kod.
Kişisel olarak bir teşekkür: Benim için uzun bir süredir kod yaz(a)mıyordum. Sayenizde üstteki örneği yazdım; açıldığımı hissediyorum. Teşekkürler!