PHP - Ddd Concept Help
can someone please help me understand the concept how to implement the "Domand Driven Design" strategy in PHP ? ok let's say for example I have a user and a user got multiple addresses. so the user got e.g
class User { public $userId; public $name; public $age; public function setUserId($userId) { $this->userId = $userId; } public function getUserId() { return $this->userId; } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } public function setAge($age) { $this->age = $age; } public function getAge() { return $this->age; } }
Then Address got e.g class Address { public $addressId; public $country; public $city; public $zip; public function setAddressId($addressId) { $this->addressId = $addressId; } public function getAddressId() { return $this->addressId; } public function setCountry($country) { $this->country = $country; } public function getCountry() { return $this->country; } public function setCity($city) { $this->city = $city; } public function getCity() { return $this->city; } public function setZip($zip) { $this->zip = $zip; } public function getZip() { return $this->zip; } }
So how to apply the concept of the Domain Driven Design here ? Similar TutorialsI have the concept I want... and I know how to do some of these things by themselves... but not in combination, and I really need to do this in combination for the concept to work. I'm totally new to PHP/mySQL... Background information: I'm using ExpressionEngine (incase anyone is familiar)...and I'm using that for a membership system as well as a means to restrict certain content to certain member/account types. The website is membership ONLY... (using cookies to remain logged in). The part I want to make happen with PHP/mySQL is to restrict some content even further. I want this content to be accessible through sequence only. The sequence of what is presented is important... so imagine it is something like this: Section 1 : About the world. Section 2: About something else. (((For example--- the user clicks Section 1... and now (invisible to the user) the DATE/TIME is taken into the database as the moment they BEGAN that part of the section.))) ((( Now the user is presented with the information they requested))) "Here is the content--- information on some countries in the world. INFoRMATION IS HERE... BLA BLA BLA BLA BLA BLABLA BLA BLA BAL BLA BLA BLA BLA BLABLA..." Now user has available choices: "------------------------ 1. Tell me about Japan. 2. Tell me about Hawaii. 3. Tell me about Mexico. 4. Tell me about U.S.A." Clicking a link will either take the user to a new PAGE (file) with the information in it... or it will somehow channel the next information from somewhere (text file or something) into the same page, changing the content that way. However it happens, I want it to be so when a choice is made--- you can not press the back button and choose something else. I want the user to really 'think' about the choices they are making before they make them... they are free to take their time as long as they wish while they're IN sequence... but if they interrupt the sequence by pressing back or just closing the browser window *** I WANT TO MAKE THAT SPECIFIC SECTION (1) INACCESSIBLE FOR A DURATION OF TIME (few days) ***. (((hence the grabbing of the date/time when the user began that section)))... When the time limit is lifted--- then they can access that content again. If this requires multiple pages--- then each page will require the previous as a referrer, so that way nothing can be accessed out of the intended sequence. The idea is that, if the user begins a section--- they MUST go through step 1--- to reach step 9... and they need to do each one in order. The user will have a wide variety of choices though... which means there will be ONE starting point (the beginning of the section), and potentially hundreds of 'ending' points to that section. For now, I'll just says 'dozens' of ending points... but eventually it will be many more. Each part of the section requiring the previous page to access it (maintaining sequence). If this effect can be done without the need for multiple pages, that might be good... as there will likely be hundreds/thousands of them when I'm done. That seems like a bit much... but sometimes one page will only have a small bit of information in it, and nothing else before the next choices are presented. But then again, I'm not sure which would be worse/take longer, having thousands of pages or thousands of database entries I need to figure out how to link up with and where. Does this make sense? I'm trying to figure out a good place to START making this happen... have any of you done anything like this before? Thanks for any help you can be... This topic has been moved to Other Web Server Software. http://www.phpfreaks.com/forums/index.php?topic=355702.0 Hi I have been getting to know PHP OOP concepts, and I started trying by writing a class and handful of functions to connect to the database and retrieve the information from the tables. I went through previous posts having similar titles, but most of them have written using mysql functions and I am using mysqli functions. I want somebody to through this simple script and let me know where the mistake is. This is my class.connect.php: Code: [Select] <?php class mySQL{ var $host; var $username; var $password; var $database; public $dbc; public function connect($set_host, $set_username, $set_password, $set_database) { $this->host = $set_host; $this->username = $set_username; $this->password = $set_password; $this->database = $set_database; $this->dbc = mysqli_connect($this->host, $this->username, $this->password, $this->database) or die('Error connecting to DB'); } public function query($sql) { return mysqli_query($this->dbc, $sql) or or die('Error:'.mysqli_error($this->dbc).', query: '.$sql); } public function fetch($sql) { $array = mysqli_fetch_array($this->query($sql)); return $array; } public function close() { return mysqli_close($this->dbc); } } ?> This is my index.php: Code: [Select] <?php require_once ("class.connect.php"); $connection = new mySQL(); $connection->connect('localhost', 'myDB', 'joker', 'names_list'); $myquery = "SELECT * FROM list"; $query = $connection->query($myquery); while($array = $connection->fetch($query)) { echo $array['first_name'] . '<br />'; echo $array['last_name'] . '<br />'; } $connection->close(); ?> I am getting a error message "Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1, query: 1" Any idea why this is happening? Thanks Dear Friends. Just now I tried to create PHP to make Rest API for my mobile application and I would like to know that it's good coding and need any improve? it is my first time for Rest API. normally I just connect to PHP file directly on .htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9A-Za-z_]+)$ function.php?func=$1 [L,QSA] RewriteRule ^([0-9A-Za-z_]+)/$ function.php?func=$1 [L,QSA] on function.php $func = $_GET['func']; switch( $func) { case 'lab_info': //ໜ້າຫຼັກ define( '_FUNC', 'lab_info.php'); break; case 'customer_info': //ຂໍ້ມູນຜູ້ໃຊ້ define( '_FUNC', 'customer_info.php'); break; default: // No function define( '_FUNC', 'functionnotfound.php'); break; } if( defined( '_FUNC') && constant( '_FUNC') !='') require( "func/" . _FUNC); on customer_info.php $error = array(); if(isset($_POST['user']) != 'lung'){ $error['status'] = "422"; $error['title'] = "Authentication Fail"; $error['detail'] = "Invalid user authentication"; echo json_encode($error);die(); } if(!isset($_POST['user'])){ $error['status'] = "401"; $error['title'] = "Invalid Attribute"; $error['detail'] = "Invalid Attribute For Information"; echo json_encode($error);die(); } $result = $conn->query("select Lab_Name,Lab_Username,Lab_Password from tb_labmanagers"); $customer = array(); while($row =mysqli_fetch_assoc($result)) { $customer[] = $row; } echo json_encode($customer); this image attached file is result from postman, client need to send user = 'lung' to get information
|