1. PHP / Говнокод #11542

    +64

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    <?php
    /* File: config.php */
    $ea_hot_color = "#F06000";
    $ea_fulllocation = "1";
    $ea_curconverter = "1";
    $ea_show_hits = "1";
    $ea_show_created_date = "1";
    //и т.д.~300 строк
    
    // ============================
    /* File: config.class.php */
    class EAConf{
    /*
    ...
    */
      function EAConf(){
       require('config.php');
       $allvars=get_defined_vars();
       $names=array_keys($allvars);
       foreach($names as $name){
        if(substr($name,0,2)=="ea") $this->$name=$allvars[$name];
       }
      }
    
    /*
    ...
    */
    }

    Какая глубина мысли! Смело, нетривиально!

    Запостил: virtual_cia, 06 Августа 2012

    Комментарии (10) RSS

    • И никаких скучных обоев !!!
      Ответить
    • PhpCascadeStyleSheet
      Ответить
    • EAConf. Challenge everything.
      Ответить
    • даа, трудно было написать:
      <?php return array(
      'ea_hot_color' = '#F06000',
      'ea_fulllocation' = 1,
      'ea_curconverter' = 1,
      'ea_show_hits' = 1,
      'ea_show_created_date' = 1);
      ...
      return include ('config.php');
      Ответить
    • Гы! Там, типа ООП.
      Ну, тогда уже в лучших традициях быдлокодерства:

      #File: config.ini
      hot_color = #F06000
      fulllocation = 1
      curconverter = 1
      show_hits = 1
      show_created_date = 1

      =========================

      <?php

      class config{
      public $hash=array();
      private $file='config.ini';

      static function &getInstance(){
      static $c;
      if(!is_object($c)){$c=new config();}
      return $c;
      }

      function config(){
      $this->hash=$this->load();
      }

      private function load(){
      $conf=array();
      if(!file_exists($this->file)){
      return array('error'=>'Bad config file');
      }
      if(!is_readable($this->file)){
      return array('error'=>'Not readable config file');
      }
      $c=file_get_contents($this->file);
      if(substr($c,0,3)=="\xEF\xBB\xBF"){
      $c=substr($c,3);
      }

      $c=preg_replace('`[\r\n]+`',"\n",$c);
      $c=explode("\n",$c);

      foreach($c as &$val){
      $str=explode('=',$val);
      $str[0]=trim(strtolower($str[0]));
      if($str[0]=='' || $str[0][0]=='#' || $str[0][0]=='<'){continue;}
      $conf[$str[0]]=trim($str[1]);
      }
      return $conf;
      }

      public function get($param){
      if(trim($param)==''){return null;}
      return (array_key_exists($param,$this->hash))?$this->hash[$param]:null;
      }

      /*
      ...
      далее полёт фантазии неограничен
      для моддинга нет предела
      ...
      */
      }


      $config=&getInstance();
      echo '<p style="color:'.$config->get('hot_color').'">'.$config->get('show_hits').'</p>';

      ?>
      Ответить
    • if(trim($param)==''){return null;} return null; заменить на типичное return 'false'; будет ТруЪ
      Ответить

    Добавить комментарий