Avatar billede boller47 Nybegynder
01. august 2002 - 00:34 Der er 1 kommentar og
1 løsning

er der en php haj der gidder tjække min kode ??

hejsa er der ikke en php haj der gidder tjække min kode (uden at tage hensyn til brugbar heden af lige nettop dette script og at det kunde køres fra en klasse det ved jeg godt : lol )
Scriptet virker godt nok men det er prencipperne i det  jeg er ved at prøve og se om jeg ikke kan lære det der med object or. programering og så er det jeg spøger ER DETTE Måden man Gør det På
og vær nu bare hår i jeres vudering
jeg vil gerne have god kontruktiv kretik
jeg er godt nok ked at det men jeg er nok nød til at sende hele scriptet

fil.1
<html>
<head>
</head>
<BODY bgcolor=silver>
<?
include 'class_css_box.php';
include 'class_css_text.php';
include 'class_print_box.php';
$string="Det Virker <br> Det er ikke så Tosset";
$box_text=new Css_text(sjov,200,50,1,"aaaa00",468,68,"$string",24,"003300","Arial"," 2px solid lightyellow ",12);
$box_text->make_box();
$box_utext=new Print_box(fun,350,50,1,"ffaa00",468,68);
$box_utext->make_box();
$box_utext2=new Print_box(funy,375,75,2,"77aaff",468,68);
$box_utext2->make_box();
?>
</body>
</html>

Fil 2.
<?php
////////////////////////////////////////
//file name class_css_box.php
////////////////////////////////////////
class Css_box{
    var $id_name;    //box id
    var $top;        //top pos
    var $left;        //left pos
    var $z_index;    //z_index nr
    var $color;        //color by hex decimal
    var $width;    //box width
    var $height;      //box hieght
//constructer
    function Css_box($id_name,$top,$left,$z_index,$color,$width,$height){
        if ($width<0) $width=0;
        if ($height<0) $height=0;
        $this->id_name = $id_name;
        $this->top = $top;
        $this->left = $left;
        $this->z_index = $z_index;
        $this->color = $color;
        $this->width = $width;
        $this->height = $height;
    }
//til output i class Print_box
    function make_box(){
        echo "<style type=text/css>";
        echo ".".$this->id_name;
        echo "{ ";
        echo "position:absolute; ";
        echo "top:".$this->top."px; ";
        echo "left:".$this->left."px; ";
        echo "z-index:".$this->z_index."; ";
        echo "background-color:".$this->color."; ";
        echo "width:".$this->width."px; ";
        echo "height:".$this->height."px;";
            }
    function print_box_start(){
        echo "} ";
        echo "</style>";
        echo "<span class=".$this->id_name.">";
    }
    function print_box_slut(){
        echo"</span>";
    }
}
?>

Fil 3.
<?php
////////////////////////////////////////////////////////////////////////
//File Name class_css_text.php
//Denne Klase er en child class af class_css_box.php
//methode kald make_box()
//class kald /constructer Css_text(parameter)
//parameter :
//1.id skal være unik efter ejet valg
//2.top plasering af box i px
//3.left plasering af box i px
//4.z-index
//5.backgraound-color i hex decimal bør angives som en text streng i ""
//6.width af box i px
//7.height af box i px
//8.text string SKAL angives i mellem ""
//9.font size i px;
//10.font color i HEX decimal Bør Angives som en text string i mellem ""
//11.font face eg, "Arial"
//12.border angives som en text string eg " 0.1px solid lightyellow "
//13.Padding i px
////////////////////////////////////////////////////////////////////////


class Css_text extends Css_box{
    var $text_string;
    var $font_size;
    var $font_color;
    var $font_family;
    var $border;
    var $padding;
    //contructer
    function Css_text($id_name,$top,$left,$z_index,$color,$width,$height,$text_string,$font_size,$font_color,$font_family,$border,$padding){
        $this->Css_box($id_name,$top,$left,$z_index,$color,$width,$height);
        $this->text_string=$text_string;
        $this->font_size=$font_size;
        $this->font_color=$font_color;
        $this->font_family=$font_family;
        $this->border=$border;
        $this->padding=$padding;
    }
    //output
    function make_box(){
        Css_box::make_box();
        echo "font-size:".$this->font_size."px;";
        echo "color:".$this->font_color." ;";
        echo "font-family:".$this->font_family." ;";
        echo "border:".$this->border.";";
        echo "padding:".$this->padding.";";
        Css_box::print_box_start();
        echo $this->text_string;
        Css_box::print_box_slut();
    }
}
?>

Fil 4.
<?php
//////////////////////////////////////////////////////////////////////
// File Name class_print_box.php
// Denne Klase er en child class af class_css_box.php
//methode kald make_box()
//class kald /constructer Css_text(parameter)
//parameter :
//1.id skal være unik efter ejet valg
//2.top plasering af box i px
//3.left plasering af box i px
//4.z-index
//5.backgraound-color i hex decimal bør angives som en text streng i ""
//6.width af box i px
//7.height af box i px
///////////////////////////////////////////////////////////////////////
class Print_box extends Css_box{
//constructer
    function Print_box($id_name,$top,$left,$z_index,$color,$width,$height){
        $this->Css_box($id_name,$top,$left,$z_index,$color,$width,$height);
    }
//out put
    function make_box(){
        Css_box::make_box();
        Css_box::print_box_start();
        Css_box::print_box_slut();
    }

}

?>
Avatar billede limemedia Nybegynder
01. august 2002 - 03:57 #1
Som du selv siger har ovenstående ikke berettighed til at eksistere som en klasse, men når man abstraherer væk fra det (du ville jo eksperimentere med OO) ser det til rimelighed ok ud.

Der der dog en enkel ting der springer mig i øjet, ikke en fejl men et brud af en af mine egne interne regler, nemlig at du fra et objekt udskriver data til browseren. At gøre det - mener jeg - nedsætter gevaldigt genbrugs-mulighederne i Scriptet - igen i netop dette eksempel kan det accepteres da CSS ikke umiddelbart skifter pr. site - men tag det som en tommelfinger regel, output ikke direkte til browseren fra kodebiblioteker. Disse biblioteker skal helst være så generelle, at du kan anvende dem på 100 sider uden at skifte et komma.

I din php fil der håndterer output vælger du at placere includes i midten af filen; det mener jeg hæmmer læsevenligheden hvis en dag en anden skal arbejde med dine filer - fremfor at anvende
<html>
<head>
</head>
<BODY bgcolor=silver>
<?
include 'class_css_box.php';
include 'class_css_text.php';
include 'class_print_box.php';
$string="Det Virker <br> Det er ikke så Tosset";
$box_text=new Css_text(sjov,200,50,1,"aaaa00",468,68,"$string",24,"003300","Arial"," 2px solid lightyellow ",12);
$box_text->make_box();
$box_utext=new Print_box(fun,350,50,1,"ffaa00",468,68);
$box_utext->make_box();
$box_utext2=new Print_box(funy,375,75,2,"77aaff",468,68);
$box_utext2->make_box();
?>
</body>
</html>

burde du flytte includes til toppen, og forresten fremfor at anvende <? anvende <?php

<?php
  include('class_css_box.php');
  include('class_css_text.php');
  include('class_print_box.php');
?>
<html>
<head>
</head>
<body bgcolor=silver>
<?php
  $string="Det Virker <br> Det er ikke så Tosset";
  $box_text=new Css_text("sjov",200,50,1,"aaaa00",468,68,$string,24,"003300","Arial"," 2px solid lightyellow ",12);
  $box_text->make_box();
  $box_utext=new Print_box(fun,350,50,1,"ffaa00",468,68);
  $box_utext->make_box();
  $box_utext2=new Print_box(funy,375,75,2,"77aaff",468,68);
  $box_utext2->make_box();
?>
</body>
</html>

(andre rettelser, har lavet indrykninger, gnyffet' sjov til "sjov", fjernet gnyffer rundt om $string og sat paranteser rundt om include (de er jo phpfunktioner))

Det var vist det - men husk at OO i PHP ikke ligefrem er hurtigt, du bør hver gang foretage en analyse af hvad der er bedst. I PHP4.3 kommer der dog en ny håndtering af objekter da Zend2 enginen anvendes - det skulle booste objekterne ikke så lidt og gøre det sjovere at arbejde med.

Good luck outthere

/ LJ
www.ljweb.com
Avatar billede boller47 Nybegynder
01. august 2002 - 22:52 #2
Tak for Det
det var rat at høre en andens mening
inden man kaster sig ud i et stort project
og jeg vil tage din kommentar til efterretnig

M.V.H.
Boller47
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester